Frontmatter

Acknowledgments

  • Academic supervisor (Prof. Timo Speith) and institution (University of Bayreuth)
  • Research collaborators, especially those connected to the original MTAIR project
  • Technical advisors who provided feedback on implementation aspects
  • Funding sources and those who provided computational resources or API access
  • Personal supporters who enabled the research through encouragement and feedback

Prefatory Apparatus: Illustrations and Terminology — Quick References

List of Tables

Table 1: Table name

Table 2: Table name

Table 3: Table name

  • Figure 1.1: The coordination crisis in AI governance - visualization of fragmentation
  • Figure 2.1: The Carlsmith model - DAG representation
  • Figure 3.1: Research design overview - workflow diagram
  • Figure 3.2: From natural language to BayesDown - transformation process
  • Figure 4.1: ARPA system architecture - component diagram
  • Figure 4.2: Visualization of Rain-Sprinkler-Grass_Wet Bayesian network - screenshot
  • Figure 5.1: Extraction quality metrics - comparative chart
  • Figure 5.2: Comparative analysis of AI governance worldviews - network visualization
  • Table 2.1: Comparison of approaches to AI risk modeling
  • Table 3.1: Probabilistic translation guide for qualitative expressions
  • Table 4.1: System component responsibilities and interactions
  • Table 5.1: Policy impact evaluation results - summary metrics

List of Graphics & Figures

List of Abbreviations

esp. especially

f., ff. following

incl. including

p., pp. page(s)

MAD Mutually Assured Destruction

  • AI - Artificial Intelligence
  • AGI - Artificial General Intelligence
  • ARPA - AI Risk Pathway Analyzer
  • DAG - Directed Acyclic Graph
  • LLM - Large Language Model
  • MTAIR - Modeling Transformative AI Risks
  • P(Doom) - Probability of existential catastrophe from misaligned AI
  • CPT - Conditional Probability Table

Glossary

  • Argument mapping: A method for visually representing the structure of arguments
  • BayesDown: An extension of ArgDown that incorporates probabilistic information
  • Bayesian network: A probabilistic graphical model representing variables and their dependencies
  • Conditional probability: The probability of an event given that another event has occurred
  • Directed Acyclic Graph (DAG): A graph with directed edges and no cycles
  • Existential risk: Risk of permanent curtailment of humanity’s potential
  • Power-seeking AI: AI systems with instrumental incentives to acquire resources and power
  • Prediction market: A market where participants trade contracts that resolve based on future events
  • d-separation: A criterion for identifying conditional independence relationships in Bayesian networks
  • Monte Carlo sampling: A computational technique using random sampling to obtain numerical results

Checklists

“Usual paper requirements”

  • introduce all terminology
    • go through text, make sure all terms are defined, explained (and added to the list of Abbr.) when first mentioned
  • readership is intelligent and interested but has no prior knowledge

This chapter presents the complete computational implementation of the AMTAIR system, demonstrating the end-to-end pipeline from document processing through interactive visualization.

# AMTAIR Implementation Notebook {.unnumbered}
{
  "cells": [
    {
      "cell_type": "code",
      "source": [
        "---\n",
        "title: AMTAIR Prototype Demonstration (Public Colab Notebook)\n",
        "---"
      ],
      "metadata": {
        "id": "cibakGBviFdQ"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lt8-AnebGUXr"
      },
      "source": [
        "# [AMTAIR Prototype Demonstration (Public Colab Notebook)](https://colab.research.google.com/github/SingularitySmith/AMTAIR_Prototype/blob/main/version_history/AMTAIR_Prototype_0_1.3.ipynb#scrollTo=lt8-AnebGUXr)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# AMTAIR Prototype: Automating Transformative AI Risk Modeling\n",
        "\n",
        "## Executive Summary\n",
        "\n",
        "This notebook implements a prototype of the AMTAIR (Automating Transformative AI Risk Modeling) project, which addresses the critical coordination failure in AI governance by developing computational tools that automate the extraction of probabilistic world models from AI safety literature.\n",
        "\n",
        "The prototype demonstrates the transformation pipeline from structured argument representations (ArgDown) to probabilistic Bayesian networks (BayesDown), enabling the visualization and analysis of causal relationships and probability distributions that underlie AI risk assessments and policy evaluations.\n",
        "\n",
        "### Purpose Within the Master's Thesis\n",
        "\n",
        "This notebook serves as the technical implementation component of the Master's thesis \"Automating Transformative AI Risk Modeling: A Computational Approach to Policy Impact Evaluation.\" It demonstrates the feasibility of automating the extraction and formalization of world models, focusing on the core extraction pipeline and visualization capabilities that form the foundation for more sophisticated analysis.\n",
        "\n",
        "### Relevance to AI Governance\n",
        "\n",
        "The coordination crisis in AI governance stems from different stakeholders working with incompatible assumptions, terminologies, and priorities. By making implicit models explicit through automated extraction and formalization, this work helps bridge communication gaps between technical researchers, policy specialists, and other stakeholders, contributing to more effective coordination in addressing existential risks from advanced AI.\n",
        "\n",
        "## Notebook Structure and Workflow\n",
        "\n",
        "This notebook implements a multi-stage pipeline for transforming argument structures into interactive Bayesian network visualizations:\n",
        "\n",
        "1. **Environment Setup** (Sections 0.1-0.3): Establishes the technical environment with necessary libraries and data connections\n",
        "\n",
        "2. **Argument Extraction** (Sections 1.0-1.8): Processes source documents into structured ArgDown representations\n",
        "\n",
        "3. **Probability Integration** (Sections 2.0-2.8): Enhances ArgDown with probability information to create BayesDown\n",
        "\n",
        "4. **Data Transformation** (Section 3.0): Converts BayesDown into structured DataFrame format\n",
        "\n",
        "5. **Visualization and Analysis** (Section 4.0): Creates interactive Bayesian network visualizations\n",
        "\n",
        "6. **Archiving and Export** (Sections 5.0-6.0): Provides utilities for saving and sharing results\n",
        "\n",
        "Throughout this notebook, we use the classic rain-sprinkler-lawn example as a canonical test case, demonstrating how a simple causal scenario (rain and sprinkler use affecting wet grass) can be represented, processed, and visualized using our automated pipeline."
      ],
      "metadata": {
        "id": "iDy_leH6DJH_"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Project Context and Purpose\n",
        "\n",
        "This notebook implements a prototype of the Automating Transformative AI Risk Modeling (AMTAIR) project, which addresses a critical coordination failure in AI governance by developing computational tools to automate the extraction of probabilistic world models from AI safety literature.\n",
        "\n",
        "The coordination crisis in AI governance stems from different stakeholders (technical researchers, policy specialists, ethicists) operating with different terminologies, priorities, and implicit theories of change. This fragmentation systematically increases existential risk through safety gaps, resource misallocation, and capability-governance mismatches.\n",
        "\n",
        "The AMTAIR project aims to bridge these divides by:\n",
        "1. Making implicit models explicit through automated extraction and formalization\n",
        "2. Enabling comparison across different worldviews\n",
        "3. Providing a common language for discussing probabilistic relationships\n",
        "4. Supporting policy evaluation across diverse scenarios\n",
        "\n",
        "## Notebook Overview and Pipeline\n",
        "\n",
        "This notebook demonstrates the core extraction pipeline from structured argument representations (ArgDown) to probabilistic Bayesian networks (BayesDown), using the classic rain-sprinkler-lawn example as a canonical test case.\n",
        "\n",
        "The pipeline consists of five main stages:\n",
        "1. **Environment Setup**: Libraries, GitHub repository access, and data loading\n",
        "2. **Argument Extraction**: Processing source documents into structured ArgDown format\n",
        "3. **Probability Integration**: Enhancing ArgDown with probabilistic information to create BayesDown\n",
        "4. **Data Transformation**: Converting BayesDown into structured DataFrame format\n",
        "5. **Visualization & Analysis**: Creating interactive Bayesian network visualizations\n",
        "\n",
        "## Connection to Master's Thesis\n",
        "\n",
        "This notebook serves as the technical implementation component of the Master's thesis \"Automating Transformative AI Risk Modeling: A Computational Approach to Policy Impact Evaluation\" (see PY_Thesis_OutlineNDraft), demonstrating the feasibility of automating the process of extracting and formalizing world models from AI safety literature.\n",
        "\n",
        "The thesis positions this work as a solution to the coordination crisis in AI governance, where the AMTAIR tools provide a crucial bridge between different stakeholder communities by creating formal representations that can be analyzed, compared, and used for policy evaluation.\n",
        "\n",
        "For broader context on the project's motivation and placement within AI governance efforts, see PY_Post0.0 (\"The Missing Piece: Why We Need a Grand Strategy for AI\") and PY_AMTAIRDescription, which explain how this technical work contributes to the development of a comprehensive AI safety grand strategy."
      ],
      "metadata": {
        "id": "Cm1JQGDYNJjf"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "22NBzTxxsnfQ"
      },
      "source": [
        "## Instructions --- How to use this notebook:\n",
        "\n",
        "\n",
        "1. **Import Libraries & Install Packages**: Run Section 0.1 to set up the necessary dependencies for data processing and visualization.\n",
        "\n",
        "2. **Connect to GitHub Repository & Load Data files**: Run Section 0.2 to establish connections to the data repository and load example datasets. This step retrieves sample ArgDown files and extracted data for demonstration.\n",
        "\n",
        "3. **Process Source Documents to ArgDown**: Sections 1.0-1.8 demonstrate the extraction of argument structures from source documents (such as PDFs) into ArgDown format, a markdown-like notation for structured arguments.\n",
        "\n",
        "4. **Convert ArgDown to BayesDown**: Sections 2.0-2.3 handle the transformation of ArgDown files into BayesDown format, which incorporates probabilistic information into the argument structure.\n",
        "\n",
        "5. **Extract Data into Structured Format**: Section 3.0 processes BayesDown format into structured database entries (CSV) that can be used for analysis.\n",
        "\n",
        "6. **Create and Analyze Bayesian Networks**: Section 4.0 demonstrates how to build Bayesian networks from the extracted data and provides tools for analyzing risk pathways.\n",
        "\n",
        "7. **Save and Export Results**: Sections 5.0-6.0 provide methods for archiving results and exporting visualizations.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "toc",
        "id": "dJYH9hZRbiz6"
      },
      "source": [
        ">[AMTAIR Prototype Demonstration (Public Colab Notebook)](#scrollTo=lt8-AnebGUXr)\n",
        "\n",
        ">[AMTAIR Prototype: Automating Transformative AI Risk Modeling](#scrollTo=iDy_leH6DJH_)\n",
        "\n",
        ">>[Executive Summary](#scrollTo=iDy_leH6DJH_)\n",
        "\n",
        ">>>[Purpose Within the Master's Thesis](#scrollTo=iDy_leH6DJH_)\n",
        "\n",
        ">>>[Relevance to AI Governance](#scrollTo=iDy_leH6DJH_)\n",
        "\n",
        ">>[Notebook Structure and Workflow](#scrollTo=iDy_leH6DJH_)\n",
        "\n",
        ">>[Project Context and Purpose](#scrollTo=Cm1JQGDYNJjf)\n",
        "\n",
        ">>[Notebook Overview and Pipeline](#scrollTo=Cm1JQGDYNJjf)\n",
        "\n",
        ">>[Connection to Master's Thesis](#scrollTo=Cm1JQGDYNJjf)\n",
        "\n",
        ">>[Instructions --- How to use this notebook:](#scrollTo=22NBzTxxsnfQ)\n",
        "\n",
        ">>[Key Concepts:](#scrollTo=NovjnOw6bzLi)\n",
        "\n",
        ">>[Example Workflow:](#scrollTo=NovjnOw6bzLi)\n",
        "\n",
        ">>[Troubleshooting:](#scrollTo=NovjnOw6bzLi)\n",
        "\n",
        ">[Environment Setup and Data Access](#scrollTo=neYYoWhbNRIJ)\n",
        "\n",
        ">[0.1 Prepare Colab/Python Environment --- Import Libraries & Packages](#scrollTo=GtVFO-s74vI_)\n",
        "\n",
        ">>[0.2 Connect to GitHub Repository](#scrollTo=2a3VR0fLhJow)\n",
        "\n",
        ">>[0.3 File Import](#scrollTo=y-ix4Rp5fE9m)\n",
        "\n",
        ">[1.0 Sources (PDF's of Papers) to ArgDown (.md file)](#scrollTo=52XyPlte5HrU)\n",
        "\n",
        ">[Sources to ArgDown: Structured Argument Extraction](#scrollTo=1-7O4KHfNU-e)\n",
        "\n",
        ">>[Process Overview](#scrollTo=1-7O4KHfNU-e)\n",
        "\n",
        ">>[What is ArgDown?](#scrollTo=1-7O4KHfNU-e)\n",
        "\n",
        ">>[1.1 Specify Source Document (e.g. PDF)](#scrollTo=ESKnZ_4f_a6y)\n",
        "\n",
        ">>[1.2 Generate ArgDown Extraction Prompt](#scrollTo=6ToQFra3_nl9)\n",
        "\n",
        ">>[1.3 Prepare LLM API Call](#scrollTo=pGv2KcZU_9Bn)\n",
        "\n",
        ">>[1.4 Make ArgDown Extraction LLM API Call](#scrollTo=i5xsDYnsAWC4)\n",
        "\n",
        ">>[1.5 Save ArgDown Extraction Response](#scrollTo=Lc2nMp8nAfeU)\n",
        "\n",
        ">>[1.6 Review and Check ArgDown.md File](#scrollTo=5HcCfqE4A0ht)\n",
        "\n",
        ">>[1.6.2 Check the Graph Structure with the ArgDown Sandbox Online](#scrollTo=gSpkvLbCC_PI)\n",
        "\n",
        ">>[1.7 Extract ArgDown Graph Information as DataFrame](#scrollTo=MAm0UKpeBvyr)\n",
        "\n",
        ">>[1.8 Store ArgDown Information as 'ArgDown.csv' file](#scrollTo=iFC6oiyICREn)\n",
        "\n",
        ">[2.0 Probability Extractions: ArgDown (.csv) to BayesDown (.md + plugin JSON syntax)](#scrollTo=7SGB0XMp5VFq)\n",
        "\n",
        ">[ArgDown to BayesDown: Adding Probability Information](#scrollTo=hWkmySZYNtzS)\n",
        "\n",
        ">>[Process Overview](#scrollTo=hWkmySZYNtzS)\n",
        "\n",
        ">>[What is BayesDown?](#scrollTo=hWkmySZYNtzS)\n",
        "\n",
        ">>[2.1 Probability Extraction Questions --- 'ArgDown.csv' to 'ArgDown_WithQuestions.csv'](#scrollTo=WcF2nHXBZru4)\n",
        "\n",
        ">>[2.2 'ArgDown_WithQuestions.csv' to 'BayesDownQuestions.md'](#scrollTo=-q9UOQ8yaBZn)\n",
        "\n",
        ">>[2.3 Generate BayesDown Probability Extraction Prompt](#scrollTo=Ux4OUCPue6Bu)\n",
        "\n",
        ">>[2.3.1 BayesDown Format Specification](#scrollTo=ivcnd2ml41Nv)\n",
        "\n",
        ">>>[Core Structure](#scrollTo=ivcnd2ml41Nv)\n",
        "\n",
        ">>>>>[Rain-Sprinkler-Lawn Example](#scrollTo=Fn72WmgVEOH0)\n",
        "\n",
        ">>[2.4 Prepare 2nd API call](#scrollTo=d4tB9WD-fIWZ)\n",
        "\n",
        ">>[2.5 Make BayesDown Probability Extraction API Call](#scrollTo=oPWto83lfN9Q)\n",
        "\n",
        ">>[2.6 Save BayesDown with Probability Estimates (.csv)](#scrollTo=L8NWpz8MfZ9_)\n",
        "\n",
        ">>[2.7 Review & Verify BayesDown Probability Estimates](#scrollTo=Q3PTtYgRfsLa)\n",
        "\n",
        ">>[2.7.2 Check the Graph Structure with the ArgDown Sandbox Online](#scrollTo=VwoAgBsafonh)\n",
        "\n",
        ">>[2.8 Extract BayesDown with Probability Estimates as Dataframe](#scrollTo=19KDn2mKf309)\n",
        "\n",
        ">[3.0 Data Extraction: BayesDown (.md) to Database (.csv)](#scrollTo=vUSS00TCEpeW)\n",
        "\n",
        ">[BayesDown to Structured Data: Network Construction](#scrollTo=vUSS00TCEpeW)\n",
        "\n",
        ">>[Extraction Pipeline Overview](#scrollTo=vUSS00TCEpeW)\n",
        "\n",
        ">>>[Theoretical Foundation](#scrollTo=vUSS00TCEpeW)\n",
        "\n",
        ">>>[Role in Thesis Research](#scrollTo=vUSS00TCEpeW)\n",
        "\n",
        ">>>[3.1 ExtractBayesDown-Data_v1](#scrollTo=AFnu_1Ludahi)\n",
        "\n",
        ">>[3.1.2 Test BayesDown Extraction](#scrollTo=eUBJh8Qp4yd4)\n",
        "\n",
        ">>[3.1.2.2 Check the Graph Structure with the ArgDown Sandbox Online](#scrollTo=z4Hgs0ICDQyW)\n",
        "\n",
        ">>[3.3 Extraction](#scrollTo=mv8f4c4D3yJj)\n",
        "\n",
        ">>>[3.3 Data-Post-Processing](#scrollTo=UcXf3fZ8dahj)\n",
        "\n",
        ">>>[3.4 Download and save finished data frame as .csv file](#scrollTo=xTwPO_J-dahj)\n",
        "\n",
        ">[4.0 Analysis & Inference: Bayesian Network Visualization](#scrollTo=t3zl7vKMECMg)\n",
        "\n",
        ">>[Bayesian Network Visualization Approach](#scrollTo=t3zl7vKMECMg)\n",
        "\n",
        ">>>[Visualization Philosophy](#scrollTo=t3zl7vKMECMg)\n",
        "\n",
        ">>>[Connection to AMTAIR Goals](#scrollTo=t3zl7vKMECMg)\n",
        "\n",
        ">>>[Implementation Structure](#scrollTo=t3zl7vKMECMg)\n",
        "\n",
        ">>[Phase 1: Dependencies/Functions](#scrollTo=LSeSAPvtgIgU)\n",
        "\n",
        ">>[Phase 2: Node Classification and Styling Module](#scrollTo=byAExfek5yFU)\n",
        "\n",
        ">>[Phase 3: HTML Content Generation Module](#scrollTo=gnS3jFGU52OZ)\n",
        "\n",
        ">>[Phase 4: Main Visualization Function](#scrollTo=d2uyG0Pi571f)\n",
        "\n",
        ">[Quickly check HTML Outputs](#scrollTo=bFtxTKmLElSF)\n",
        "\n",
        ">[Conclusion: From Prototype to Production](#scrollTo=oatKYlKrOSiN)\n",
        "\n",
        ">>[Summary of Achievements](#scrollTo=oatKYlKrOSiN)\n",
        "\n",
        ">>[Limitations and Future Work](#scrollTo=oatKYlKrOSiN)\n",
        "\n",
        ">>[Connection to AMTAIR Project](#scrollTo=oatKYlKrOSiN)\n",
        "\n",
        ">[6.0 Save Outputs](#scrollTo=kjbIj19epbrF)\n",
        "\n",
        ">[Saving and Exporting Results](#scrollTo=0QqlN6dYpm4s)\n",
        "\n",
        ">>[Convert .ipynb Notebook to MarkDown](#scrollTo=pS6AhdiSCLw4)\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "NovjnOw6bzLi"
      },
      "source": [
        "\n",
        "## Key Concepts:\n",
        "\n",
        "- **ArgDown**: A structured format for representing arguments, with hierarchical relationships between statements.\n",
        "- **BayesDown**: An extension of ArgDown that incorporates probabilistic information, allowing for Bayesian network construction.\n",
        "- **Extraction Pipeline**: The process of converting unstructured text to structured argument representations.\n",
        "- **Bayesian Networks**: Probabilistic graphical models that represent variables and their conditional dependencies.\n",
        "\n",
        "## Example Workflow:\n",
        "\n",
        "1. Load a sample ArgDown file from the repository\n",
        "2. Extract the hierarchical structure and relationships\n",
        "3. Add probabilistic information to create a BayesDown representation\n",
        "4. Generate a Bayesian network visualization\n",
        "5. Analyze conditional probabilities and risk pathways\n",
        "\n",
        "## Troubleshooting:\n",
        "\n",
        "- If connectivity issues occur, ensure you have access to the GitHub repository\n",
        "- For visualization errors, check that all required libraries are properly installed\n",
        "- When processing custom files, ensure they follow the expected format conventions"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 0. Environment Setup and Data Access\n",
        "\n",
        "This section establishes the technical foundation for the AMTAIR prototype by:\n",
        "1. Installing and importing necessary libraries\n",
        "2. Setting up access to the GitHub repository\n",
        "3. Loading example data files\n",
        "\n",
        "The environment setup is designed to be run once per session, with flags to prevent redundant installations and imports. This section forms the basis for the subsequent extraction and analysis steps in the pipeline.\n",
        "\n",
        "The key goal is to create a reproducible environment where the Bayesian network extraction and visualization can be performed consistently, with appropriate error handling and resource management."
      ],
      "metadata": {
        "id": "neYYoWhbNRIJ"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "GtVFO-s74vI_"
      },
      "source": [
        "# 0.1 Prepare Colab/Python Environment --- Import Libraries & Packages\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 0.1 --- Install & Import Libraries & Packages (One-Time Setup) ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Establishes the core technical environment for the AMTAIR prototype.\n",
        "Sets up all required libraries for Bayesian network processing, visualization, and data manipulation.\n",
        "Uses a flag-based approach to ensure setup only runs once per session, enhancing efficiency.\n",
        "\n",
        "The setup follows a three-stage process:\n",
        "1. Install required packages not available in Colab by default\n",
        "2. Import all necessary libraries with error handling\n",
        "3. Set a global flag to prevent redundant execution\n",
        "\n",
        "DEPENDENCIES: Requires internet connection for package installation\n",
        "OUTPUTS: Global variable _setup_imports_done and loaded Python libraries\n",
        "\"\"\"\n",
        "\n",
        "#  Check if setup has already been completed in this session using environment flag\n",
        "try:\n",
        "    # If this variable exists, setup was already done successfully\n",
        "    _setup_imports_done\n",
        "    print(\"✅ Libraries already installed and imported in this session. Skipping setup.\")\n",
        "\n",
        "except NameError:\n",
        "    print(\"⏳ Performing one-time library installation and imports...\")\n",
        "\n",
        "    # --- STAGE 1: Install required packages ---\n",
        "    # Install visualization and network analysis libraries\n",
        "    !pip install -q pyvis  # Network visualization library\n",
        "    !apt-get install pandoc -y  # Document conversion utility\n",
        "\n",
        "    # Install Google API and data processing packages\n",
        "    !pip install -q --upgrade gspread pandas google-auth google-colab  # Data manipulation and Google integration\n",
        "\n",
        "    # Install Bayesian network and probabilistic modeling tools\n",
        "    !pip install -q pgmpy  # Probabilistic graphical models library\n",
        "\n",
        "    # Install notebook conversion tools\n",
        "    !pip install -q nbconvert  # Often pre-installed, but ensures availability\n",
        "\n",
        "    print(\"   --> Installations complete.\")\n",
        "\n",
        "    # --- STAGE 2: Import libraries with error handling ---\n",
        "    try:\n",
        "        # Network and HTTP libraries\n",
        "        import requests      # For making HTTP requests to APIs and GitHub\n",
        "        import io            # For handling in-memory file-like objects\n",
        "\n",
        "        # Data processing libraries\n",
        "        import pandas as pd  # For structured data manipulation\n",
        "        import numpy as np   # For numerical operations\n",
        "        import json          # For JSON parsing and serialization\n",
        "        import re            # For regular expression pattern matching\n",
        "\n",
        "        # Visualization libraries\n",
        "        import matplotlib.pyplot as plt  # For creating plots and charts\n",
        "        from IPython.display import HTML, display, Markdown  # For rich output in notebook\n",
        "\n",
        "        # --- Specialized libraries requiring installation ---\n",
        "        # Network analysis library\n",
        "        import networkx as nx  # For graph representation and analysis\n",
        "\n",
        "        # Probabilistic modeling libraries\n",
        "        from pgmpy.models import BayesianNetwork  # For Bayesian network structure\n",
        "        from pgmpy.factors.discrete import TabularCPD  # For conditional probability tables\n",
        "        from pgmpy.inference import VariableElimination  # For probabilistic inference\n",
        "\n",
        "        # Interactive network visualization\n",
        "        from pyvis.network import Network  # For interactive network visualization\n",
        "\n",
        "        # Output version information for key libraries\n",
        "        print(f\"      pandas version: {pd.__version__}\")\n",
        "        print(f\"      networkx version: {nx.__version__}\")\n",
        "        # Add others if specific versions are critical\n",
        "\n",
        "        print(\"   --> Imports complete.\")\n",
        "\n",
        "        # --- STAGE 3: Set flag to indicate successful setup ---\n",
        "        _setup_imports_done = True\n",
        "        print(\"✅ One-time setup finished successfully.\")\n",
        "\n",
        "    except ImportError as e:\n",
        "        # Handle specific import failures\n",
        "        print(f\"❌ ERROR during import: {e}\")\n",
        "        print(\"   --> Setup did not complete successfully. Please check installations.\")\n",
        "    except Exception as e:\n",
        "        # Handle unexpected errors\n",
        "        print(f\"❌ UNEXPECTED ERROR during setup: {e}\")\n",
        "        print(\"   --> Setup did not complete successfully.\")\n",
        "\n",
        "# Environment is now ready for AMTAIR processing"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "9pMZsRONBdOO",
        "outputId": "b474c7e1-0e7e-47f3-a546-9321cff91a6e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "✅ Libraries already installed and imported in this session. Skipping setup.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "2a3VR0fLhJow"
      },
      "source": [
        "## 0.2 Connect to GitHub Repository\n",
        "\n",
        "The Public GitHub Repo Url in use:\n",
        "\n",
        "https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/\n",
        "\n",
        "Note:\n",
        "When encountering errors, accessing the data, try using \"RAW\" Urls."
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "#| label: my_code_cell_test\n",
        "# @title 0.2 --- Connect to GitHub Repository --- Load Files\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Establishes connection to the AMTAIR GitHub repository and provides\n",
        "functions to load example data files for processing.\n",
        "\n",
        "This block creates a reusable function for accessing files from the project's\n",
        "GitHub repository, enabling access to example files like the rain-sprinkler-lawn\n",
        "Bayesian network that serves as our canonical test case.\n",
        "\n",
        "DEPENDENCIES: requests library, io library\n",
        "OUTPUTS: load_file_from_repo function and test file loads\n",
        "\"\"\"\n",
        "\n",
        "from requests.exceptions import HTTPError\n",
        "\n",
        "# Specify the base repository URL for the AMTAIR project\n",
        "repo_url = \"https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_carlsmith/\"\n",
        "print(f\"Connecting to repository: {repo_url}\")\n",
        "\n",
        "def load_file_from_repo(relative_path):\n",
        "    \"\"\"\n",
        "    Loads a file from the specified GitHub repository using a relative path.\n",
        "\n",
        "    Args:\n",
        "        relative_path (str): Path to the file relative to the repo_url\n",
        "\n",
        "    Returns:\n",
        "        For CSV/JSON: pandas DataFrame\n",
        "        For MD: string containing file contents\n",
        "\n",
        "    Raises:\n",
        "        HTTPError: If file not found or other HTTP error occurs\n",
        "        ValueError: If unsupported file type is requested\n",
        "    \"\"\"\n",
        "    file_url = repo_url + relative_path\n",
        "    print(f\"Attempting to load: {file_url}\")\n",
        "\n",
        "    # Fetch the file content from GitHub\n",
        "    response = requests.get(file_url)\n",
        "\n",
        "    # Check for bad status codes with enhanced error messages\n",
        "    if response.status_code == 404:\n",
        "        raise HTTPError(f\"File not found at URL: {file_url}. Check the file path/name and ensure the file is publicly accessible.\", response=response)\n",
        "    else:\n",
        "        response.raise_for_status()  # Raise for other error codes\n",
        "\n",
        "    # Convert response to file-like object\n",
        "    file_object = io.StringIO(response.text)\n",
        "\n",
        "    # Process different file types appropriately\n",
        "    if relative_path.endswith(\".csv\"):\n",
        "        return pd.read_csv(file_object)  # Return DataFrame for CSV\n",
        "    elif relative_path.endswith(\".json\"):\n",
        "        return pd.read_json(file_object)  # Return DataFrame for JSON\n",
        "    elif relative_path.endswith(\".md\"):\n",
        "        return file_object.read()  # Return raw content for MD files\n",
        "    else:\n",
        "        raise ValueError(f\"Unsupported file type: {relative_path.split('.')[-1]}. Add support in the GitHub Connection section of this notebook.\")\n",
        "\n",
        "# Load example files to test connection\n",
        "try:\n",
        "    # Load the extracted data CSV file\n",
        "#    df = load_file_from_repo(\"extracted_data.csv\")\n",
        "\n",
        "    # Load the ArgDown test text\n",
        "    md_content = load_file_from_repo(\"ArgDown.md\")\n",
        "\n",
        "    print(\"✅ Successfully connected to repository and loaded test files.\")\n",
        "except Exception as e:\n",
        "    print(f\"❌ Error loading files: {str(e)}\")\n",
        "    print(\"Please check your internet connection and the repository URL.\")\n",
        "\n",
        "# Display preview of loaded content (commented out to avoid cluttering output)\n",
        "print(md_content)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "CF3vBHahKWf1",
        "outputId": "2050a62a-f0f1-4450-9fbb-8a75f1cb9422"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Connecting to repository: https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_carlsmith/\n",
            "Attempting to load: https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_carlsmith/ArgDown.md\n",
            "✅ Successfully connected to repository and loaded test files.\n",
            "[Existential_Catastrophe]: The destruction of humanity's long-term potential due to AI systems we've lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"]}\n",
            "- [Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"]}\n",
            "    - [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"]}\n",
            "        - [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n",
            "            - [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"]}\n",
            "                - [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"]}\n",
            "                - [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"]}\n",
            "                - [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"]}\n",
            "            - [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"]}\n",
            "                - [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"]}\n",
            "                - [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"]}\n",
            "                - [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"]}\n",
            "            - [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"]}\n",
            "                - [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"]}\n",
            "                    - [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"]}\n",
            "                    - [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"]}\n",
            "                - [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"]}\n",
            "        - [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"]}\n",
            "            - [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"]}\n",
            "            - [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"]}\n",
            "[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"]}\n",
            "- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n",
            "[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"]}\n",
            "- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n",
            "[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"]}\n",
            "- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "y-ix4Rp5fE9m"
      },
      "source": [
        "## 0.3 File Import"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        },
        "id": "x7SM8xquWVe5",
        "outputId": "a53a9f50-346a-4399-c6e0-79ee476737f6"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'[Existential_Catastrophe]: The destruction of humanity\\'s long-term potential due to AI systems we\\'ve lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"]}\\n- [Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"]}\\n    - [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"]}\\n        - [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\\n            - [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"]}\\n                - [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"]}\\n                - [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"]}\\n                - [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"]}\\n            - [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"]}\\n                - [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"]}\\n                - [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"]}\\n                - [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"]}\\n            - [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"]}\\n                - [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"]}\\n                    - [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"]}\\n                    - [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"]}\\n                - [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"]}\\n        - [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"]}\\n            - [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"]}\\n            - [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"]}\\n[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"]}\\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\\n[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"]}\\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\\n[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"]}\\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\\n'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 9
        }
      ],
      "source": [
        "# @title\n",
        "md_content"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "52XyPlte5HrU"
      },
      "source": [
        "# 1.0 Sources (PDF's of Papers) to ArgDown (.md file)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 1. Sources to ArgDown: Structured Argument Extraction\n",
        "\n",
        "## Process Overview\n",
        "\n",
        "This section implements the first major stage of the AMTAIR pipeline: transforming source documents (such as research papers, blog posts, or expert analyses) into structured argument representations using the ArgDown format.\n",
        "\n",
        "ArgDown is a markdown-like notation for representing arguments in a hierarchical structure. In the context of AMTAIR, it serves as the first step toward creating formal Bayesian networks by:\n",
        "1. Identifying key variables/statements in the text\n",
        "2. Capturing their hierarchical relationships\n",
        "3. Preserving their descriptive content\n",
        "4. Defining their possible states (instantiations)\n",
        "\n",
        "The extraction process uses Large Language Models (LLMs) to identify the structure and relationships in the text, though in this notebook we focus on processing pre-formatted examples rather than performing the full extraction from raw text.\n",
        "\n",
        "## What is ArgDown?\n",
        "\n",
        "ArgDown uses a simple syntax where:\n",
        "- Statements are represented as `[Statement]: Description`\n",
        "- Relationships are indicated with `+` symbols and indentation\n",
        "- Metadata is added in JSON format, including possible states of each variable\n",
        "\n",
        "For example:\n",
        "\n",
        "\n",
        "```\n",
        "[MainClaim]: Description of the main claim. {\"instantiations\": [\"claim_TRUE\", \"claim_FALSE\"]}\n",
        "\n",
        " + [SupportingEvidence]: Description of evidence. {\"instantiations\": [\"evidence_TRUE\", \"evidence_FALSE\"]}\n",
        "```\n",
        "\n",
        "\n",
        "\n",
        "This structure will later be enhanced with probability information to create BayesDown, which can be transformed into a Bayesian network for analysis and visualization."
      ],
      "metadata": {
        "id": "1-7O4KHfNU-e"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ESKnZ_4f_a6y"
      },
      "source": [
        "## 1.1 Specify Source Document (e.g. PDF)\n",
        "\n",
        "Review the source document, ensure it is suitable for API call and upload to / store it in the correct location."
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 1.1.a) --- MTAIR Online Model (Analytica) ---\n",
        "\n",
        "from IPython.display import IFrame\n",
        "\n",
        "IFrame(src=\"https://acp.analytica.com/view0?invite=4560&code=3000289064591444815\", width=\"100%\", height=\"900px\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 921
        },
        "id": "m7l8xNd-gxcl",
        "outputId": "9bb61c30-cce4-42b5-9d2d-fa3293a542f1"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<IPython.lib.display.IFrame at 0x7d3db6f27310>"
            ],
            "text/html": [
              "\n",
              "        <iframe\n",
              "            width=\"100%\"\n",
              "            height=\"900px\"\n",
              "            src=\"https://acp.analytica.com/view0?invite=4560&code=3000289064591444815\"\n",
              "            frameborder=\"0\"\n",
              "            allowfullscreen\n",
              "            \n",
              "        ></iframe>\n",
              "        "
            ]
          },
          "metadata": {},
          "execution_count": 14
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6ToQFra3_nl9"
      },
      "source": [
        "## 1.2 Generate ArgDown Extraction Prompt\n",
        "\n",
        "Generate Extraction Prompt"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 1.2.0 --- Prompt Template Function Definitions ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Defines a flexible template system for LLM prompts used in the extraction pipeline.\n",
        "\n",
        "This block implements two key classes:\n",
        "1. PromptTemplate: A simple template class supporting variable substitution for dynamic prompts\n",
        "2. PromptLibrary: A collection of pre-defined prompt templates for different extraction tasks\n",
        "\n",
        "These templates are used in the ArgDown extraction and BayesDown probability extraction\n",
        "stages of the pipeline, providing consistent and well-structured prompts to the LLMs.\n",
        "\n",
        "DEPENDENCIES: string.Template for variable substitution\n",
        "OUTPUTS: PromptTemplate and PromptLibrary classes\n",
        "\"\"\"\n",
        "\n",
        "from string import Template\n",
        "from typing import Dict, Optional, Union, List\n",
        "\n",
        "class PromptTemplate:\n",
        "    \"\"\"Template system for LLM prompts with variable substitution\"\"\"\n",
        "\n",
        "    def __init__(self, template: str):\n",
        "        \"\"\"Initialize with template string using $variable format\"\"\"\n",
        "        self.template = Template(template)\n",
        "\n",
        "    def format(self, **kwargs) -> str:\n",
        "        \"\"\"Substitute variables in the template\"\"\"\n",
        "        return self.template.safe_substitute(**kwargs)\n",
        "\n",
        "    @classmethod\n",
        "    def from_file(cls, filepath: str) -> 'PromptTemplate':\n",
        "        \"\"\"Load template from a file\"\"\"\n",
        "        with open(filepath, 'r') as f:\n",
        "            template = f.read()\n",
        "        return cls(template)\n",
        "\n",
        "class PromptLibrary:\n",
        "    \"\"\"Collection of prompt templates for different extraction tasks\"\"\"\n",
        "\n",
        "    # ArgDown extraction prompt - transforms source text into structured argument map\n",
        "    ARGDOWN_EXTRACTION = PromptTemplate(\"\"\"\n",
        "You are participating in the AMTAIR (Automating Transformative AI Risk Modeling) project and you are tasked with converting natural language arguments into ArgDown syntax by extracting and formalizing causal world models from unstructured text.\n",
        "Your specific task is to extract the implicit causal model from the provided document in structured ArgDown format.\n",
        "\n",
        "## Epistemic Foundation & Purpose\n",
        "\n",
        "This extraction represents one possible interpretation of the implicit causal model in the document. Multiple extractions from the same text help reveal patterns of convergence (where the model is clearly articulated) and divergence (where the model contains ambiguities). This approach acknowledges that expert texts often contain implicit rather than explicit causal models.\n",
        "\n",
        "Your role is to reveal the causal structure already present in the author's thinking, maintaining epistemic humility about your interpretation while adhering strictly to the required format.\n",
        "\n",
        "## ArgDown Format Specification\n",
        "\n",
        "### Core Syntax\n",
        "\n",
        "ArgDown represents causal relationships using a hierarchical structure:\n",
        "\n",
        "1. Variables appear in square brackets with descriptive text:\n",
        "   `[Variable_Name]: Description of the variable.`\n",
        "\n",
        "2. Causal relationships use indentation (2 spaces per level) and '+' symbols:\n",
        "\n",
        "[Effect]: Description of effect. + [Cause]: Description of cause. + [Deeper_Cause]: Description of deeper cause.\n",
        "\n",
        "3. Causality flows from bottom (more indented) to top (less indented):\n",
        "- More indented variables (causes) influence less indented variables (effects)\n",
        "- The top-level variable is the ultimate effect or outcome\n",
        "- Deeper indentation levels represent root causes or earlier factors\n",
        "\n",
        "4. Each variable must include JSON metadata with possible states (instantiations):\n",
        "`[Variable]: Description. {\"instantiations\": [\"variable_STATE1\", \"variable_STATE2\"]}`\n",
        "\n",
        "### JSON Metadata Format\n",
        "\n",
        "The JSON metadata must follow this exact structure:\n",
        "\n",
        "```json\n",
        "{\"instantiations\": [\"variable_STATE1\", \"variable_STATE2\"]}\n",
        "\n",
        "Requirements:\n",
        "* Double quotes (not single) around field names and string values\n",
        "* Square brackets enclosing the instantiations array\n",
        "* Comma separation between array elements\n",
        "* No trailing comma after the last element\n",
        "* Must be valid JSON syntax that can be parsed by standard JSON parsers\n",
        "\n",
        "For binary variables (most common case):\n",
        "{\"instantiations\": [\"variable_TRUE\", \"variable_FALSE\"]}\n",
        "\n",
        "For multi-state variables (when clearly specified in the text):\n",
        "{\"instantiations\": [\"variable_HIGH\", \"variable_MEDIUM\", \"variable_LOW\"]}\n",
        "\n",
        "The metadata must appear on the same line as the variable definition, after the description.\n",
        "## Complex Structural Patterns\n",
        "### Variables Influencing Multiple Effects\n",
        "The same variable can appear multiple times in different places in the hierarchy if it influences multiple effects:\n",
        "[Effect1]: First effect description. {\"instantiations\": [\"effect1_TRUE\", \"effect1_FALSE\"]}\n",
        "  + [Cause_A]: Description of cause A. {\"instantiations\": [\"cause_a_TRUE\", \"cause_a_FALSE\"]}\n",
        "\n",
        "[Effect2]: Second effect description. {\"instantiations\": [\"effect2_TRUE\", \"effect2_FALSE\"]}\n",
        "  + [Cause_A]\n",
        "  + [Cause_B]: Description of cause B. {\"instantiations\": [\"cause_b_TRUE\", \"cause_b_FALSE\"]}\n",
        "\n",
        "### Multiple Causes of the Same Effect\n",
        "Multiple causes can influence the same effect by being listed at the same indentation level:\n",
        "[Effect]: Description of effect. {\"instantiations\": [\"effect_TRUE\", \"effect_FALSE\"]}\n",
        "  + [Cause1]: Description of first cause. {\"instantiations\": [\"cause1_TRUE\", \"cause1_FALSE\"]}\n",
        "  + [Cause2]: Description of second cause. {\"instantiations\": [\"cause2_TRUE\", \"cause2_FALSE\"]}\n",
        "    + [Deeper_Cause]: A cause that influences Cause2. {\"instantiations\": [\"deeper_cause_TRUE\", \"deeper_cause_FALSE\"]}\n",
        "\n",
        "### Causal Chains\n",
        "Causal chains are represented through multiple levels of indentation:\n",
        "[Ultimate_Effect]: The final outcome. {\"instantiations\": [\"ultimate_effect_TRUE\", \"ultimate_effect_FALSE\"]}\n",
        "  + [Intermediate_Effect]: A mediating variable. {\"instantiations\": [\"intermediate_effect_TRUE\", \"intermediate_effect_FALSE\"]}\n",
        "    + [Root_Cause]: The initial cause. {\"instantiations\": [\"root_cause_TRUE\", \"root_cause_FALSE\"]}\n",
        "  + [2nd_Intermediate_Effect]: A mediating variable. {\"instantiations\": [\"intermediate_effect_TRUE\", \"intermediate_effect_FALSE\"]}\n",
        "\n",
        "\n",
        "### Common Cause of Multiple Variables\n",
        "A common cause affecting multiple variables is represented by referencing the same variable in multiple places:\n",
        "[Effect1]: First effect description. {\"instantiations\": [\"effect1_TRUE\", \"effect1_FALSE\"]}\n",
        "  + [Common_Cause]: Description of common cause. {\"instantiations\": [\"common_cause_TRUE\", \"common_cause_FALSE\"]}\n",
        "\n",
        "[Effect2]: Second effect description. {\"instantiations\": [\"effect2_TRUE\", \"effect2_FALSE\"]}\n",
        "  + [Common_Cause]\n",
        "\n",
        "## Detailed Extraction Workflow\n",
        "Please follow this step-by-step process, documenting your reasoning in XML tags:\n",
        "<analysis>\n",
        "First, conduct a holistic analysis of the document:\n",
        "1. Identify the main subject matter or domain\n",
        "2. Note key concepts, variables, and factors discussed\n",
        "3. Pay attention to language indicating causal relationships (causes, affects, influences, depends on, etc.)\n",
        "4. Look for the ultimate outcomes or effects that are the focus of the document\n",
        "5. Record your general understanding of the document's implicit causal structure\n",
        "</analysis>\n",
        "<variable_identification>\n",
        "Next, identify and list the key variables in the causal model:\n",
        "* Focus on factors that are discussed as having an influence or being influenced\n",
        "* For each variable:\n",
        "  * Create a descriptive name in [square_brackets]\n",
        "  * Write a concise description based directly on the text\n",
        "  * Determine possible states (usually binary TRUE/FALSE unless clearly specified)\n",
        "* Distinguish between:\n",
        "  * Outcome variables (effects the author is concerned with)\n",
        "  * Intermediate variables (both causes and effects in chains)\n",
        "  * Root cause variables (exogenous factors in the model)\n",
        "* List all identified variables with their descriptions and possible states\n",
        "</variable_identification>\n",
        "\n",
        "<causal_structure>\n",
        "Then, determine the causal relationships between variables:\n",
        "* For each variable, identify what factors influence it\n",
        "* Note the direction of causality (what causes what)\n",
        "* Look for mediating variables in causal chains\n",
        "* Identify common causes of multiple effects\n",
        "* Capture feedback loops if present (though they must be represented as DAGs)\n",
        "* Map out the hierarchical structure of the causal model\n",
        "</causal_structure>\n",
        "\n",
        "<format_conversion>\n",
        "Now, convert your analysis into proper ArgDown format:\n",
        "* Start with the ultimate outcome variables at the top level\n",
        "* Place direct causes indented below with \\+ symbols\n",
        "* Continue with deeper causes at further indentation levels\n",
        "* Add variable descriptions and instantiations metadata\n",
        "* Ensure variables appearing in multiple places have consistent names\n",
        "* Check that the entire structure forms a valid directed acyclic graph\n",
        "</format_conversion>\n",
        "\n",
        "<validation>\n",
        "\n",
        "Finally, review your extraction for quality and format correctness:\n",
        "1. Verify all variables have properly formatted metadata\n",
        "2. Check that indentation properly represents causal direction\n",
        "3. Confirm the extraction accurately reflects the document's implicit model\n",
        "4. Ensure no cycles exist in the causal structure\n",
        "5. Verify that variables referenced multiple times are consistent\n",
        "6. Check that the extraction would be useful for subsequent analysis\n",
        "\n",
        "</validation>\n",
        "\n",
        "\n",
        "## Source Document Analysis Guidance\n",
        "When analyzing the source document:\n",
        "* Focus on revealing the author's own causal model, not imposing an external framework\n",
        "* Maintain the author's terminology where possible\n",
        "* Look for both explicit statements of causality and implicit assumptions\n",
        "* Pay attention to the relative importance the author assigns to different factors\n",
        "* Notice where the author expresses certainty versus uncertainty\n",
        "* Consider the level of granularity appropriate to the document's own analysis\n",
        "\n",
        "Remember that your goal is to make the implicit model explicit, not to evaluate or improve it.\n",
        "The value lies in accurately representing the author's perspective, even if you might personally disagree or see limitations in their model.\n",
        "\n",
        "\"\"\")\n",
        "\n",
        "    # BayesDown probability extraction prompt - enhances ArgDown with probability information\n",
        "    BAYESDOWN_EXTRACTION = PromptTemplate(\"\"\"\n",
        "You are an expert in probabilistic reasoning and Bayesian networks. Your task is to extend the provided ArgDown structure with probability information, creating a BayesDown representation.\n",
        "\n",
        "For each statement in the ArgDown structure, you need to:\n",
        "1. Estimate prior probabilities for each possible state\n",
        "2. Estimate conditional probabilities given parent states\n",
        "3. Maintain the original structure and relationships\n",
        "\n",
        "Here is the format to follow:\n",
        "[Node]: Description. { \"instantiations\": [\"node_TRUE\", \"node_FALSE\"], \"priors\": { \"p(node_TRUE)\": \"0.7\", \"p(node_FALSE)\": \"0.3\" }, \"posteriors\": { \"p(node_TRUE|parent_TRUE)\": \"0.9\", \"p(node_TRUE|parent_FALSE)\": \"0.4\", \"p(node_FALSE|parent_TRUE)\": \"0.1\", \"p(node_FALSE|parent_FALSE)\": \"0.6\" } }\n",
        " [Parent]: Parent description. {...}\n",
        "\n",
        "\n",
        "Here are the specific probability questions to answer:\n",
        "$questions\n",
        "\n",
        "ArgDown structure to enhance:\n",
        "$argdown\n",
        "\n",
        "Provide the complete BayesDown representation with probabilities:\n",
        "\"\"\")\n",
        "\n",
        "    @classmethod\n",
        "    def get_template(cls, template_name: str) -> PromptTemplate:\n",
        "        \"\"\"Get a prompt template by name\"\"\"\n",
        "        if hasattr(cls, template_name):\n",
        "            return getattr(cls, template_name)\n",
        "        else:\n",
        "            raise ValueError(f\"Template not found: {template_name}\")"
      ],
      "metadata": {
        "id": "MJpgdepF2Ug3"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pGv2KcZU_9Bn"
      },
      "source": [
        "## 1.3 Prepare LLM API Call\n",
        "\n",
        "Combine Systemprompt + API Specifications + ArgDown Instructions + Prompt + Source PDF for API Call"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 1.3.0 --- Provider-Agnostic LLM API Interface ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Provides a unified interface for interacting with different LLM providers.\n",
        "\n",
        "This block implements a flexible, provider-agnostic system for making LLM API calls:\n",
        "1. Base abstract class (LLMProvider) defining the common interface\n",
        "2. Implementation classes for specific providers (OpenAI and Anthropic)\n",
        "3. Factory class for creating appropriate provider instances\n",
        "\n",
        "This abstraction allows the extraction pipeline to work with different LLM providers\n",
        "without changing the core code, supporting both current and future LLM backends.\n",
        "\n",
        "DEPENDENCIES: requests for API calls, os for environment variables, abstract base classes\n",
        "OUTPUTS: LLMProvider abstract class and concrete implementations for OpenAI and Anthropic\n",
        "\"\"\"\n",
        "\n",
        "import os\n",
        "import json\n",
        "import time\n",
        "import requests\n",
        "from abc import ABC, abstractmethod\n",
        "from typing import Dict, List, Optional, Union, Any\n",
        "from dataclasses import dataclass\n",
        "\n",
        "@dataclass\n",
        "class LLMResponse:\n",
        "    \"\"\"Standard response object for LLM completions\"\"\"\n",
        "    content: str            # The generated text response\n",
        "    model: str              # The model used for generation\n",
        "    usage: Dict[str, int]   # Token usage statistics\n",
        "    raw_response: Dict[str, Any]  # Complete provider-specific response\n",
        "    created_at: float = time.time()  # Timestamp of response creation\n",
        "\n",
        "class LLMProvider(ABC):\n",
        "    \"\"\"Abstract base class for LLM providers\"\"\"\n",
        "\n",
        "    @abstractmethod\n",
        "    def complete(self,\n",
        "                prompt: str,\n",
        "                system_prompt: Optional[str] = None,\n",
        "                temperature: float = 0.7,\n",
        "                max_tokens: int = 4000) -> LLMResponse:\n",
        "        \"\"\"Generate a completion from the LLM\"\"\"\n",
        "        pass\n",
        "\n",
        "    @abstractmethod\n",
        "    def get_available_models(self) -> List[str]:\n",
        "        \"\"\"Return a list of available models from this provider\"\"\"\n",
        "        pass\n",
        "\n",
        "class OpenAIProvider(LLMProvider):\n",
        "    \"\"\"OpenAI API implementation\"\"\"\n",
        "\n",
        "    def __init__(self, api_key: Optional[str] = None, organization: Optional[str] = None):\n",
        "        \"\"\"Initialize with API key from args or environment\"\"\"\n",
        "        self.api_key = api_key or os.environ.get(\"OPENAI_API_KEY\")\n",
        "        if not self.api_key:\n",
        "            raise ValueError(\"OpenAI API key is required. Provide as argument or set OPENAI_API_KEY environment variable.\")\n",
        "\n",
        "        self.organization = organization or os.environ.get(\"OPENAI_ORGANIZATION\")\n",
        "        self.api_base = \"https://api.openai.com/v1\"\n",
        "\n",
        "    def complete(self,\n",
        "                prompt: str,\n",
        "                system_prompt: Optional[str] = None,\n",
        "                model: str = \"gpt-4-turbo\",\n",
        "                temperature: float = 0.7,\n",
        "                max_tokens: int = 4000) -> LLMResponse:\n",
        "        \"\"\"Generate a completion using OpenAI's API\"\"\"\n",
        "\n",
        "        # Prepare request headers\n",
        "        headers = {\n",
        "            \"Content-Type\": \"application/json\",\n",
        "            \"Authorization\": f\"Bearer {self.api_key}\"\n",
        "        }\n",
        "\n",
        "        if self.organization:\n",
        "            headers[\"OpenAI-Organization\"] = self.organization\n",
        "\n",
        "        # Create message structure\n",
        "        messages = []\n",
        "        if system_prompt:\n",
        "            messages.append({\"role\": \"system\", \"content\": system_prompt})\n",
        "\n",
        "        messages.append({\"role\": \"user\", \"content\": prompt})\n",
        "\n",
        "        # Prepare request data\n",
        "        data = {\n",
        "            \"model\": model,\n",
        "            \"messages\": messages,\n",
        "            \"temperature\": temperature,\n",
        "            \"max_tokens\": max_tokens\n",
        "        }\n",
        "\n",
        "        # Make API call\n",
        "        response = requests.post(\n",
        "            f\"{self.api_base}/chat/completions\",\n",
        "            headers=headers,\n",
        "            json=data\n",
        "        )\n",
        "\n",
        "        response.raise_for_status()\n",
        "        result = response.json()\n",
        "\n",
        "        # Transform into standardized response format\n",
        "        return LLMResponse(\n",
        "            content=result[\"choices\"][0][\"message\"][\"content\"],\n",
        "            model=result[\"model\"],\n",
        "            usage=result[\"usage\"],\n",
        "            raw_response=result\n",
        "        )\n",
        "\n",
        "    def get_available_models(self) -> List[str]:\n",
        "        \"\"\"Return a list of available OpenAI models\"\"\"\n",
        "        headers = {\n",
        "            \"Authorization\": f\"Bearer {self.api_key}\"\n",
        "        }\n",
        "\n",
        "        if self.organization:\n",
        "            headers[\"OpenAI-Organization\"] = self.organization\n",
        "\n",
        "        response = requests.get(\n",
        "            f\"{self.api_base}/models\",\n",
        "            headers=headers\n",
        "        )\n",
        "\n",
        "        response.raise_for_status()\n",
        "        models = response.json()[\"data\"]\n",
        "        return [model[\"id\"] for model in models]\n",
        "\n",
        "class AnthropicProvider(LLMProvider):\n",
        "    \"\"\"Anthropic Claude API implementation\"\"\"\n",
        "\n",
        "    def __init__(self, api_key: Optional[str] = None):\n",
        "        \"\"\"Initialize with API key from args or environment\"\"\"\n",
        "        self.api_key = api_key or os.environ.get(\"ANTHROPIC_API_KEY\")\n",
        "        if not self.api_key:\n",
        "            raise ValueError(\"Anthropic API key is required. Provide as argument or set ANTHROPIC_API_KEY environment variable.\")\n",
        "\n",
        "        self.api_base = \"https://api.anthropic.com/v1\"\n",
        "\n",
        "    def complete(self,\n",
        "                prompt: str,\n",
        "                system_prompt: Optional[str] = None,\n",
        "                model: str = \"claude-3-opus-20240229\",\n",
        "                temperature: float = 0.7,\n",
        "                max_tokens: int = 4000) -> LLMResponse:\n",
        "        \"\"\"Generate a completion using Anthropic's API\"\"\"\n",
        "\n",
        "        # Prepare request headers\n",
        "        headers = {\n",
        "            \"Content-Type\": \"application/json\",\n",
        "            \"X-API-Key\": self.api_key,\n",
        "            \"anthropic-version\": \"2023-06-01\"\n",
        "        }\n",
        "\n",
        "        # Prepare request data in Anthropic-specific format\n",
        "        data = {\n",
        "            \"model\": model,\n",
        "            \"messages\": [{\"role\": \"user\", \"content\": prompt}],\n",
        "            \"temperature\": temperature,\n",
        "            \"max_tokens\": max_tokens\n",
        "        }\n",
        "\n",
        "        # Add system prompt if provided (Anthropic uses a different format)\n",
        "        if system_prompt:\n",
        "            data[\"system\"] = system_prompt\n",
        "\n",
        "        # Make API call\n",
        "        response = requests.post(\n",
        "            f\"{self.api_base}/messages\",\n",
        "            headers=headers,\n",
        "            json=data\n",
        "        )\n",
        "\n",
        "        response.raise_for_status()\n",
        "        result = response.json()\n",
        "\n",
        "        # Transform into standardized response format\n",
        "        return LLMResponse(\n",
        "            content=result[\"content\"][0][\"text\"],\n",
        "            model=result[\"model\"],\n",
        "            usage={\"prompt_tokens\": result.get(\"usage\", {}).get(\"input_tokens\", 0),\n",
        "                   \"completion_tokens\": result.get(\"usage\", {}).get(\"output_tokens\", 0)},\n",
        "            raw_response=result\n",
        "        )\n",
        "\n",
        "    def get_available_models(self) -> List[str]:\n",
        "        \"\"\"Return a list of available Anthropic models\"\"\"\n",
        "        # Anthropic doesn't have a models endpoint, so we return a static list\n",
        "        return [\n",
        "            \"claude-3-opus-20240229\",\n",
        "            \"claude-3-sonnet-20240229\",\n",
        "            \"claude-3-haiku-20240307\"\n",
        "        ]\n",
        "\n",
        "class LLMFactory:\n",
        "    \"\"\"Factory for creating LLM providers\"\"\"\n",
        "\n",
        "    @staticmethod\n",
        "    def create_provider(provider_name: str, **kwargs) -> LLMProvider:\n",
        "        \"\"\"Create and return an LLM provider instance\"\"\"\n",
        "        if provider_name.lower() == \"openai\":\n",
        "            return OpenAIProvider(**kwargs)\n",
        "        elif provider_name.lower() == \"anthropic\":\n",
        "            return AnthropicProvider(**kwargs)\n",
        "        else:\n",
        "            raise ValueError(f\"Unsupported provider: {provider_name}\")"
      ],
      "metadata": {
        "id": "T87yG6SH2-4J"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 1.3.0 --- API Call Function Definitions ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Provides core functions for extracting ArgDown representations from text using LLMs.\n",
        "\n",
        "This block implements the main extraction functionality:\n",
        "1. extract_argdown_from_text: Sends text to LLM to extract structured ArgDown representation\n",
        "2. validate_argdown: Verifies the extracted ArgDown for correctness and completeness\n",
        "3. process_source_document: Handles source files (PDF, TXT, MD) and manages extraction\n",
        "4. save_argdown_extraction: Saves extraction results with metadata for further processing\n",
        "\n",
        "These functions form the first stage of the AMTAIR pipeline, transforming\n",
        "unstructured text into structured argument representations.\n",
        "\n",
        "DEPENDENCIES: LLMFactory from previous cell, re for pattern matching\n",
        "OUTPUTS: Functions for ArgDown extraction, validation, and storage\n",
        "\"\"\"\n",
        "\n",
        "def extract_argdown_from_text(text: str, provider_name: str = \"openai\", model: str = None) -> str:\n",
        "    \"\"\"\n",
        "    Extract ArgDown representation from text using LLM\n",
        "\n",
        "    Args:\n",
        "        text: The source text to extract arguments from\n",
        "        provider_name: The LLM provider to use (openai or anthropic)\n",
        "        model: Specific model to use, or None for default\n",
        "\n",
        "    Returns:\n",
        "        Extracted ArgDown representation\n",
        "    \"\"\"\n",
        "    # Create LLM provider\n",
        "    provider = LLMFactory.create_provider(provider_name)\n",
        "\n",
        "    # Get extraction prompt\n",
        "    prompt_template = PromptLibrary.get_template(\"ARGDOWN_EXTRACTION\")\n",
        "    prompt = prompt_template.format(text=text)\n",
        "\n",
        "    # Set model-specific parameters\n",
        "    if provider_name.lower() == \"openai\":\n",
        "        model = model or \"gpt-4-turbo\"\n",
        "        temperature = 0.3  # Lower temperature for more deterministic extraction\n",
        "        max_tokens = 4000\n",
        "    elif provider_name.lower() == \"anthropic\":\n",
        "        model = model or \"claude-3-opus-20240229\"\n",
        "        temperature = 0.2\n",
        "        max_tokens = 4000\n",
        "\n",
        "    # Call the LLM\n",
        "    system_prompt = \"You are an expert in argument mapping and causal reasoning.\"\n",
        "    response = provider.complete(\n",
        "        prompt=prompt,\n",
        "        system_prompt=system_prompt,\n",
        "        model=model,\n",
        "        temperature=temperature,\n",
        "        max_tokens=max_tokens\n",
        "    )\n",
        "\n",
        "    # Extract the ArgDown content (remove any markdown code blocks if present)\n",
        "    argdown_content = response.content\n",
        "    if \"```\" in argdown_content:\n",
        "        # Extract content between code blocks if present\n",
        "        import re\n",
        "        matches = re.findall(r\"```(?:argdown)?\\n([\\s\\S]*?)\\n```\", argdown_content)\n",
        "        if matches:\n",
        "            argdown_content = matches[0]\n",
        "\n",
        "    return argdown_content\n",
        "\n",
        "def validate_argdown(argdown_text: str) -> Dict[str, Any]:\n",
        "    \"\"\"\n",
        "    Validate ArgDown representation to ensure it's well-formed\n",
        "\n",
        "    Args:\n",
        "        argdown_text: ArgDown representation to validate\n",
        "\n",
        "    Returns:\n",
        "        Dictionary with validation results\n",
        "    \"\"\"\n",
        "    # Initialize validation results\n",
        "    results = {\n",
        "        \"is_valid\": True,\n",
        "        \"errors\": [],\n",
        "        \"warnings\": [],\n",
        "        \"stats\": {\n",
        "            \"node_count\": 0,\n",
        "            \"relationship_count\": 0,\n",
        "            \"max_depth\": 0\n",
        "        }\n",
        "    }\n",
        "\n",
        "    # Basic syntax checks\n",
        "    lines = argdown_text.split(\"\\n\")\n",
        "    node_pattern = r'\\[(.*?)\\]:'\n",
        "    instantiation_pattern = r'{\"instantiations\":'\n",
        "\n",
        "    # Track nodes and relationships\n",
        "    nodes = set()\n",
        "    relationships = []\n",
        "    current_depth = 0\n",
        "    max_depth = 0\n",
        "\n",
        "    for i, line in enumerate(lines):\n",
        "        # Skip empty lines\n",
        "        if not line.strip():\n",
        "            continue\n",
        "\n",
        "        # Calculate indentation depth\n",
        "        indent = 0\n",
        "        if '+' in line:\n",
        "            indent = line.find('+') // 2\n",
        "\n",
        "        current_depth = indent\n",
        "        max_depth = max(max_depth, current_depth)\n",
        "\n",
        "        # Check for node definitions\n",
        "        import re\n",
        "        node_matches = re.findall(node_pattern, line)\n",
        "        if node_matches:\n",
        "            node = node_matches[0]\n",
        "            nodes.add(node)\n",
        "            results[\"stats\"][\"node_count\"] += 1\n",
        "\n",
        "            # Check for instantiations\n",
        "            if instantiation_pattern not in line:\n",
        "                results[\"warnings\"].append(f\"Line {i+1}: Node '{node}' is missing instantiations metadata\")\n",
        "\n",
        "        # Check parent-child relationships\n",
        "        if indent > 0 and '+' in line and node_matches:\n",
        "            # This is a child node; find its parent\n",
        "            parent_indent = indent - 1\n",
        "            j = i - 1\n",
        "            while j >= 0:\n",
        "                if '+' in lines[j] and lines[j].find('+') // 2 == parent_indent:\n",
        "                    parent_matches = re.findall(node_pattern, lines[j])\n",
        "                    if parent_matches:\n",
        "                        parent = parent_matches[0]\n",
        "                        relationships.append((parent, node))\n",
        "                        results[\"stats\"][\"relationship_count\"] += 1\n",
        "                        break\n",
        "                j -= 1\n",
        "\n",
        "    results[\"stats\"][\"max_depth\"] = max_depth\n",
        "\n",
        "    # If we didn't find any nodes, that's a problem\n",
        "    if results[\"stats\"][\"node_count\"] == 0:\n",
        "        results[\"is_valid\"] = False\n",
        "        results[\"errors\"].append(\"No valid nodes found in ArgDown representation\")\n",
        "\n",
        "    return results\n",
        "\n",
        "def process_source_document(file_path: str, provider_name: str = \"openai\") -> Dict[str, Any]:\n",
        "    \"\"\"\n",
        "    Process a source document to extract ArgDown representation\n",
        "\n",
        "    Args:\n",
        "        file_path: Path to the source document\n",
        "        provider_name: The LLM provider to use\n",
        "\n",
        "    Returns:\n",
        "        Dictionary with extraction results\n",
        "    \"\"\"\n",
        "    # Load the source document\n",
        "    text = \"\"\n",
        "    if file_path.endswith(\".pdf\"):\n",
        "        # PDF handling requires additional libraries\n",
        "        try:\n",
        "            import PyPDF2\n",
        "            with open(file_path, 'rb') as file:\n",
        "                reader = PyPDF2.PdfReader(file)\n",
        "                text = \"\"\n",
        "                for page in reader.pages:\n",
        "                    text += page.extract_text() + \"\\n\"\n",
        "        except ImportError:\n",
        "            raise ImportError(\"PyPDF2 is required for PDF processing. Install it with: pip install PyPDF2\")\n",
        "    elif file_path.endswith(\".txt\"):\n",
        "        with open(file_path, 'r') as file:\n",
        "            text = file.read()\n",
        "    elif file_path.endswith(\".md\"):\n",
        "        with open(file_path, 'r') as file:\n",
        "            text = file.read()\n",
        "    else:\n",
        "        raise ValueError(f\"Unsupported file format: {file_path}\")\n",
        "\n",
        "    # Extract ArgDown\n",
        "    argdown_content = extract_argdown_from_text(text, provider_name)\n",
        "\n",
        "    # Validate the extraction\n",
        "    validation_results = validate_argdown(argdown_content)\n",
        "\n",
        "    # Prepare results\n",
        "    results = {\n",
        "        \"source_path\": file_path,\n",
        "        \"extraction_timestamp\": time.time(),\n",
        "        \"argdown_content\": argdown_content,\n",
        "        \"validation\": validation_results,\n",
        "        \"provider\": provider_name\n",
        "    }\n",
        "\n",
        "    return results\n",
        "\n",
        "def save_argdown_extraction(results: Dict[str, Any], output_path: str) -> None:\n",
        "    \"\"\"\n",
        "    Save ArgDown extraction results\n",
        "\n",
        "    Args:\n",
        "        results: Extraction results dictionary\n",
        "        output_path: Path to save the results\n",
        "    \"\"\"\n",
        "    # Save the ArgDown content\n",
        "    with open(output_path, 'w') as file:\n",
        "        file.write(results[\"argdown_content\"])\n",
        "\n",
        "    # Save metadata alongside\n",
        "    metadata_path = output_path.replace('.md', '_metadata.json')\n",
        "    metadata = {\n",
        "        \"source_path\": results[\"source_path\"],\n",
        "        \"extraction_timestamp\": results[\"extraction_timestamp\"],\n",
        "        \"validation\": results[\"validation\"],\n",
        "        \"provider\": results[\"provider\"]\n",
        "    }\n",
        "\n",
        "    with open(metadata_path, 'w') as file:\n",
        "        json.dump(metadata, file, indent=2)"
      ],
      "metadata": {
        "id": "LkZDjGLJ183D"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 1.3 --- Prepare LLM API Call ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Prepares parameters for LLM API calls used in ArgDown extraction.\n",
        "\n",
        "This function handles the configuration for LLM API calls, including:\n",
        "1. Source document path validation\n",
        "2. LLM provider selection and validation\n",
        "3. Model selection with appropriate defaults\n",
        "\n",
        "The function returns a configuration dictionary that can be passed to the\n",
        "extraction function in the next step of the pipeline.\n",
        "\n",
        "DEPENDENCIES: None (uses standard Python functionality)\n",
        "OUTPUTS: Dictionary with extraction configuration parameters\n",
        "\"\"\"\n",
        "\n",
        "def prepare_extraction_call(source_path, provider_name=\"openai\", model=None):\n",
        "    \"\"\"\n",
        "    Prepare the LLM API call for ArgDown extraction\n",
        "\n",
        "    Args:\n",
        "        source_path (str): Path to the source document to extract from\n",
        "        provider_name (str): LLM provider to use ('openai' or 'anthropic')\n",
        "        model (str, optional): Specific model to use. Defaults to None (uses provider's default).\n",
        "\n",
        "    Returns:\n",
        "        dict: Configuration parameters for extraction\n",
        "\n",
        "    Raises:\n",
        "        ValueError: If an unsupported provider is specified\n",
        "    \"\"\"\n",
        "    # Load the source document\n",
        "    print(f\"Processing source document: {source_path}\")\n",
        "\n",
        "    # Determine provider and model\n",
        "    provider = provider_name.lower()\n",
        "    if provider not in [\"openai\", \"anthropic\"]:\n",
        "        raise ValueError(f\"Unsupported provider: {provider}. Use 'openai' or 'anthropic'.\")\n",
        "\n",
        "    # Set default model if none provided\n",
        "    if model is None:\n",
        "        if provider == \"openai\":\n",
        "            model = \"gpt-4-turbo\"\n",
        "        elif provider == \"anthropic\":\n",
        "            model = \"claude-3-opus-20240229\"\n",
        "\n",
        "    # Print configuration\n",
        "    print(f\"Using provider: {provider}\")\n",
        "    print(f\"Selected model: {model}\")\n",
        "\n",
        "    return {\n",
        "        \"source_path\": source_path,\n",
        "        \"provider\": provider,\n",
        "        \"model\": model\n",
        "    }\n",
        "\n",
        "# Usage example:\n",
        "source_path = \"example_document.pdf\"  # Replace with actual document path\n",
        "extraction_config = prepare_extraction_call(source_path, provider_name=\"openai\")"
      ],
      "metadata": {
        "id": "aKselXiIqeIH",
        "outputId": "0196650a-6072-4c59-da51-d1d68ba20409",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Processing source document: example_document.pdf\n",
            "Using provider: openai\n",
            "Selected model: gpt-4-turbo\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i5xsDYnsAWC4"
      },
      "source": [
        "## 1.4 Make ArgDown Extraction LLM API Call"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "d80R85UyAfKh",
        "outputId": "b23d7130-f97f-481e-c61b-0bc9de389a46",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 616
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Starting extraction from example_document.pdf\n",
            "Error during extraction: PyPDF2 is required for PDF processing. Install it with: pip install PyPDF2\n"
          ]
        },
        {
          "output_type": "error",
          "ename": "ImportError",
          "evalue": "PyPDF2 is required for PDF processing. Install it with: pip install PyPDF2",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mModuleNotFoundError\u001b[0m                       Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-17-fd592eb962ab>\u001b[0m in \u001b[0;36mprocess_source_document\u001b[0;34m(file_path, provider_name)\u001b[0m\n\u001b[1;32m    166\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 167\u001b[0;31m             \u001b[0;32mimport\u001b[0m \u001b[0mPyPDF2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    168\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'rb'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'PyPDF2'",
            "\nDuring handling of the above exception, another exception occurred:\n",
            "\u001b[0;31mImportError\u001b[0m                               Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-19-27555067c1d2>\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     59\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     60\u001b[0m \u001b[0;31m# Usage example:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 61\u001b[0;31m \u001b[0mextraction_results\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexecute_extraction\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mextraction_config\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m<ipython-input-19-27555067c1d2>\u001b[0m in \u001b[0;36mexecute_extraction\u001b[0;34m(extraction_config)\u001b[0m\n\u001b[1;32m     35\u001b[0m     \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     36\u001b[0m         \u001b[0;31m# Process the document\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m         results = process_source_document(\n\u001b[0m\u001b[1;32m     38\u001b[0m             \u001b[0mextraction_config\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"source_path\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     39\u001b[0m             \u001b[0mprovider_name\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextraction_config\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"provider\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;32m<ipython-input-17-fd592eb962ab>\u001b[0m in \u001b[0;36mprocess_source_document\u001b[0;34m(file_path, provider_name)\u001b[0m\n\u001b[1;32m    172\u001b[0m                     \u001b[0mtext\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mpage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mextract_text\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\"\\n\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    173\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mImportError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 174\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mImportError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"PyPDF2 is required for PDF processing. Install it with: pip install PyPDF2\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    175\u001b[0m     \u001b[0;32melif\u001b[0m \u001b[0mfile_path\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mendswith\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\".txt\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    176\u001b[0m         \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile_path\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mImportError\u001b[0m: PyPDF2 is required for PDF processing. Install it with: pip install PyPDF2",
            "",
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0;32m\nNOTE: If your import is failing due to a missing package, you can\nmanually install dependencies using either !pip or !apt.\n\nTo view examples of installing some common dependencies, click the\n\"Open Examples\" button below.\n\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n"
          ],
          "errorDetails": {
            "actions": [
              {
                "action": "open_url",
                "actionText": "Open Examples",
                "url": "/notebooks/snippets/importing_libraries.ipynb"
              }
            ]
          }
        }
      ],
      "source": [
        "# @title 1.4 --- Make ArgDown Extraction LLM API Call ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Executes the ArgDown extraction process using the LLM API.\n",
        "\n",
        "This function performs the actual extraction of ArgDown representations from source documents:\n",
        "1. Takes the configuration parameters prepared in the previous step\n",
        "2. Processes the document using the LLM API\n",
        "3. Validates the extraction results\n",
        "4. Provides timing and statistics about the extraction\n",
        "\n",
        "The extraction process transforms unstructured text into a structured argument\n",
        "representation following the ArgDown syntax defined in the AMTAIR project.\n",
        "\n",
        "DEPENDENCIES: process_source_document function from previous cells\n",
        "OUTPUTS: Dictionary with extraction results including ArgDown content and validation info\n",
        "\"\"\"\n",
        "\n",
        "def execute_extraction(extraction_config):\n",
        "    \"\"\"\n",
        "    Execute the ArgDown extraction using the LLM API\n",
        "\n",
        "    Args:\n",
        "        extraction_config (dict): Configuration parameters for extraction\n",
        "\n",
        "    Returns:\n",
        "        dict: Extraction results including ArgDown content and validation info\n",
        "\n",
        "    Raises:\n",
        "        Exception: For any errors during extraction\n",
        "    \"\"\"\n",
        "    print(f\"Starting extraction from {extraction_config['source_path']}\")\n",
        "    start_time = time.time()\n",
        "\n",
        "    try:\n",
        "        # Process the document\n",
        "        results = process_source_document(\n",
        "            extraction_config[\"source_path\"],\n",
        "            provider_name=extraction_config[\"provider\"]\n",
        "        )\n",
        "\n",
        "        # Print success message\n",
        "        elapsed_time = time.time() - start_time\n",
        "        print(f\"Extraction completed in {elapsed_time:.2f} seconds\")\n",
        "        print(f\"Extracted {results['validation']['stats']['node_count']} nodes with \"\n",
        "              f\"{results['validation']['stats']['relationship_count']} relationships\")\n",
        "\n",
        "        # Print any warnings\n",
        "        if results['validation']['warnings']:\n",
        "            print(\"\\nWarnings:\")\n",
        "            for warning in results['validation']['warnings']:\n",
        "                print(f\"- {warning}\")\n",
        "\n",
        "        return results\n",
        "\n",
        "    except Exception as e:\n",
        "        print(f\"Error during extraction: {str(e)}\")\n",
        "        raise\n",
        "\n",
        "# Usage example:\n",
        "extraction_results = execute_extraction(extraction_config)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Lc2nMp8nAfeU"
      },
      "source": [
        "## 1.5 Save ArgDown Extraction Response\n",
        "\n",
        "1. Save and log API return\n",
        "\n",
        "2. Save ArgDown.md file for further Proecessing"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-BiLLNymAz3c",
        "outputId": "9bf13fbc-51bd-4756-cfb1-4db6d0950f00",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 211
        }
      },
      "outputs": [
        {
          "output_type": "error",
          "ename": "NameError",
          "evalue": "name 'extraction_results' is not defined",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-20-84ee4ea64739>\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m     55\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     56\u001b[0m \u001b[0;31m# Usage example:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 57\u001b[0;31m \u001b[0moutput_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msave_extraction_results\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mextraction_results\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     58\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     59\u001b[0m \u001b[0;31m# Preview the extracted ArgDown\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mNameError\u001b[0m: name 'extraction_results' is not defined"
          ]
        }
      ],
      "source": [
        "# @title 1.5 --- Save ArgDown Extraction Response ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Saves the extracted ArgDown content to files for further processing.\n",
        "\n",
        "This function handles saving the extraction results:\n",
        "1. Creates an output directory if it doesn't exist\n",
        "2. Saves the extracted ArgDown content with a timestamp in the filename\n",
        "3. Saves accompanying metadata in a JSON file\n",
        "4. Saves a copy at a standard location for the next steps in the pipeline\n",
        "5. Provides a preview of the extracted content\n",
        "\n",
        "The saved files serve as inputs for the next stage of the pipeline where\n",
        "probability information will be added to create BayesDown.\n",
        "\n",
        "DEPENDENCIES: os module for directory operations\n",
        "OUTPUTS: Saved ArgDown files and preview of extracted content\n",
        "\"\"\"\n",
        "\n",
        "def save_extraction_results(results, output_directory=\"./outputs\"):\n",
        "    \"\"\"\n",
        "    Save the extraction results to file\n",
        "\n",
        "    Args:\n",
        "        results (dict): Extraction results from execute_extraction\n",
        "        output_directory (str): Directory to save results\n",
        "\n",
        "    Returns:\n",
        "        str: Path to the saved ArgDown file\n",
        "    \"\"\"\n",
        "    # Ensure output directory exists\n",
        "    import os\n",
        "    os.makedirs(output_directory, exist_ok=True)\n",
        "\n",
        "    # Create base filename from source\n",
        "    import os.path\n",
        "    base_name = os.path.basename(results[\"source_path\"]).split('.')[0]\n",
        "    timestamp = time.strftime(\"%Y%m%d-%H%M%S\")\n",
        "    output_filename = f\"{base_name}_argdown_{timestamp}.md\"\n",
        "    output_path = os.path.join(output_directory, output_filename)\n",
        "\n",
        "    # Save the results\n",
        "    save_argdown_extraction(results, output_path)\n",
        "\n",
        "    print(f\"Saved ArgDown extraction to: {output_path}\")\n",
        "    print(f\"Metadata saved to: {output_path.replace('.md', '_metadata.json')}\")\n",
        "\n",
        "    # Also save to standard location for further processing\n",
        "    standard_path = os.path.join(output_directory, \"ArgDown.md\")\n",
        "    with open(standard_path, 'w') as f:\n",
        "        f.write(results[\"argdown_content\"])\n",
        "    print(f\"Also saved to standard location: {standard_path}\")\n",
        "\n",
        "    return output_path\n",
        "\n",
        "# Usage example:\n",
        "output_path = save_extraction_results(extraction_results)\n",
        "\n",
        "# Preview the extracted ArgDown\n",
        "from IPython.display import Markdown, display\n",
        "\n",
        "# Display the first 500 characters of the extracted ArgDown\n",
        "preview = extraction_results[\"argdown_content\"][:500] + \"...\" if len(extraction_results[\"argdown_content\"]) > 500 else extraction_results[\"argdown_content\"]\n",
        "display(Markdown(f\"## Extracted ArgDown Preview\\n\\n```\\n{preview}\\n```\"))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5HcCfqE4A0ht"
      },
      "source": [
        "## 1.6 Review and Check ArgDown.md File"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 963
        },
        "id": "MgxYW5al-e0u",
        "outputId": "194286a9-c784-4c0d-bbe2-eada60e27139"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.Markdown object>"
            ],
            "text/markdown": "[Existential_Catastrophe]: The destruction of humanity's long-term potential due to AI systems we've lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"]}\n- [Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"]}\n    - [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"]}\n        - [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n            - [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"]}\n                - [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"]}\n                - [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"]}\n                - [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"]}\n            - [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"]}\n                - [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"]}\n                - [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"]}\n                - [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"]}\n            - [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"]}\n                - [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"]}\n                    - [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"]}\n                    - [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"]}\n                - [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"]}\n        - [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"]}\n            - [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"]}\n            - [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"]}\n[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"]}\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"]}\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"]}\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"]}\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "display(Markdown(md_content))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gSpkvLbCC_PI"
      },
      "source": [
        "## 1.6.2 Check the Graph Structure with the ArgDown Sandbox Online\n",
        "Copy and paste the BayesDown formatted ... in the ArgDown Sandbox below to quickly verify that the network renders correctly."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 621
        },
        "id": "7_jAnBjf4e4P",
        "outputId": "e70f9717-2d87-4dde-cd67-a1cc36ae0a82"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<IPython.lib.display.IFrame at 0x7d3db5e18a10>"
            ],
            "text/html": [
              "\n",
              "        <iframe\n",
              "            width=\"100%\"\n",
              "            height=\"600px\"\n",
              "            src=\"https://argdown.org/sandbox/map/\"\n",
              "            frameborder=\"0\"\n",
              "            allowfullscreen\n",
              "            \n",
              "        ></iframe>\n",
              "        "
            ]
          },
          "metadata": {},
          "execution_count": 22
        }
      ],
      "source": [
        "# @title 1.6.2 --- ArgDown Online Sandbox ---\n",
        "\n",
        "from IPython.display import IFrame\n",
        "\n",
        "IFrame(src=\"https://argdown.org/sandbox/map/\", width=\"100%\", height=\"600px\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MAm0UKpeBvyr"
      },
      "source": [
        "## 1.7 Extract ArgDown Graph Information as DataFrame\n",
        "\n",
        "Extract:\n",
        "\n",
        "\n",
        "*   Nodes (Variable_Title)\n",
        "*   Edges (Parents)\n",
        "*   Instantiations\n",
        "*   Description\n",
        "\n",
        "Implementation nodes:\n",
        "- One function for ArgDown and BayesDown extraction, but:\n",
        "- IF YOU ONLY WANT ARGDOWN EXTRACTION: USE ARGUMENT IN FUNCTION CALL \"parse_markdown_hierarchy(markdown_text, ArgDown = True)\"\n",
        "- so if you set ArgDown = True, it gives you only instantiations, no probabilities.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "LTDQOBd7COIm"
      },
      "outputs": [],
      "source": [
        "# @title 1.7 --- Parsing ArgDown & BayesDown (.md to .csv) ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Provides the core parsing functionality for transforming ArgDown and BayesDown\n",
        "text representations into structured DataFrame format for further processing.\n",
        "\n",
        "This block implements the critical extraction pipeline described in the AMTAIR project\n",
        "(see PY_TechnicalImplementation) that converts argument structures into Bayesian networks.\n",
        "The function can handle both basic ArgDown (structure-only) and BayesDown (with probabilities).\n",
        "\n",
        "Key steps in the parsing process:\n",
        "1. Remove comments from the markdown text\n",
        "2. Extract titles, descriptions, and indentation levels\n",
        "3. Establish parent-child relationships based on indentation\n",
        "4. Convert the structured information into a DataFrame\n",
        "5. Add derived columns for network analysis\n",
        "\n",
        "DEPENDENCIES: pandas, re, json libraries\n",
        "INPUTS: Markdown text in ArgDown/BayesDown format\n",
        "OUTPUTS: Structured DataFrame with node information, relationships, and properties\n",
        "\"\"\"\n",
        "\n",
        "def parse_markdown_hierarchy_fixed(markdown_text, ArgDown=False):\n",
        "    \"\"\"\n",
        "    Parse ArgDown or BayesDown format into a structured DataFrame with parent-child relationships.\n",
        "\n",
        "    Args:\n",
        "        markdown_text (str): Text in ArgDown or BayesDown format\n",
        "        ArgDown (bool): If True, extracts only structure without probabilities\n",
        "                        If False, extracts both structure and probability information\n",
        "\n",
        "    Returns:\n",
        "        pandas.DataFrame: Structured data with node information, relationships, and attributes\n",
        "    \"\"\"\n",
        "    # PHASE 1: Clean and prepare the text\n",
        "    clean_text = remove_comments(markdown_text)\n",
        "\n",
        "    # PHASE 2: Extract basic information about nodes\n",
        "    titles_info = extract_titles_info(clean_text)\n",
        "\n",
        "    # PHASE 3: Determine the hierarchical relationships\n",
        "    titles_with_relations = establish_relationships_fixed(titles_info, clean_text)\n",
        "\n",
        "    # PHASE 4: Convert to structured DataFrame format\n",
        "    df = convert_to_dataframe(titles_with_relations, ArgDown)\n",
        "\n",
        "    # PHASE 5: Add derived columns for analysis\n",
        "    df = add_no_parent_no_child_columns_to_df(df)\n",
        "    df = add_parents_instantiation_columns_to_df(df)\n",
        "\n",
        "    return df\n",
        "\n",
        "def remove_comments(markdown_text):\n",
        "    \"\"\"\n",
        "    Remove comment blocks from markdown text using regex pattern matching.\n",
        "\n",
        "    Args:\n",
        "        markdown_text (str): Text containing potential comment blocks\n",
        "\n",
        "    Returns:\n",
        "        str: Text with comment blocks removed\n",
        "    \"\"\"\n",
        "    # Remove anything between /* and */ using regex\n",
        "    return re.sub(r'/\\*.*?\\*/', '', markdown_text, flags=re.DOTALL)\n",
        "\n",
        "def extract_titles_info(text):\n",
        "    \"\"\"\n",
        "    Extract titles with their descriptions and indentation levels from markdown text.\n",
        "\n",
        "    Args:\n",
        "        text (str): Cleaned markdown text\n",
        "\n",
        "    Returns:\n",
        "        dict: Dictionary with titles as keys and dictionaries of attributes as values\n",
        "    \"\"\"\n",
        "    lines = text.split('\\n')\n",
        "    titles_info = {}\n",
        "\n",
        "    for line in lines:\n",
        "        # Skip empty lines\n",
        "        if not line.strip():\n",
        "            continue\n",
        "\n",
        "        # Extract title within square or angle brackets\n",
        "        title_match = re.search(r'[<\\[](.+?)[>\\]]', line)\n",
        "        if not title_match:\n",
        "            continue\n",
        "\n",
        "        title = title_match.group(1)\n",
        "\n",
        "        # Extract description and metadata\n",
        "        title_pattern_in_line = r'[<\\[]' + re.escape(title) + r'[>\\]]:'\n",
        "        description_match = re.search(title_pattern_in_line + r'\\s*(.*)', line)\n",
        "\n",
        "        if description_match:\n",
        "            full_text = description_match.group(1).strip()\n",
        "\n",
        "            # Split description and metadata at the first \"{\"\n",
        "            if \"{\" in full_text:\n",
        "                split_index = full_text.find(\"{\")\n",
        "                description = full_text[:split_index].strip()\n",
        "                metadata = full_text[split_index:].strip()\n",
        "            else:\n",
        "                # Keep the entire description and no metadata\n",
        "                description = full_text\n",
        "                metadata = ''  # Initialize as empty string\n",
        "        else:\n",
        "            description = ''\n",
        "            metadata = ''  # Ensure metadata is initialized\n",
        "\n",
        "        # Calculate indentation level based on spaces before + or - symbol\n",
        "        indentation = 0\n",
        "        if '+' in line:\n",
        "            symbol_index = line.find('+')\n",
        "            # Count spaces before the '+' symbol\n",
        "            i = symbol_index - 1\n",
        "            while i >= 0 and line[i] == ' ':\n",
        "                indentation += 1\n",
        "                i -= 1\n",
        "        elif '-' in line:\n",
        "            symbol_index = line.find('-')\n",
        "            # Count spaces before the '-' symbol\n",
        "            i = symbol_index - 1\n",
        "            while i >= 0 and line[i] == ' ':\n",
        "                indentation += 1\n",
        "                i -= 1\n",
        "\n",
        "        # If neither symbol exists, indentation remains 0\n",
        "\n",
        "        if title in titles_info:\n",
        "            # Only update description if it's currently empty and we found a new one\n",
        "            if not titles_info[title]['description'] and description:\n",
        "                titles_info[title]['description'] = description\n",
        "\n",
        "            # Store all indentation levels for this title\n",
        "            titles_info[title]['indentation_levels'].append(indentation)\n",
        "\n",
        "            # Keep max indentation for backward compatibility\n",
        "            if indentation > titles_info[title]['indentation']:\n",
        "                titles_info[title]['indentation'] = indentation\n",
        "\n",
        "            # Do NOT update metadata here - keep the original metadata\n",
        "        else:\n",
        "            # First time seeing this title, create a new entry\n",
        "            titles_info[title] = {\n",
        "                'description': description,\n",
        "                'indentation': indentation,\n",
        "                'indentation_levels': [indentation],  # Initialize with first indentation level\n",
        "                'parents': [],\n",
        "                'children': [],\n",
        "                'line': None,\n",
        "                'line_numbers': [],  # Initialize an empty list for all occurrences\n",
        "                'metadata': metadata  # Set metadata explicitly from what we found\n",
        "            }\n",
        "\n",
        "    return titles_info\n",
        "\n",
        "def establish_relationships_fixed(titles_info, text):\n",
        "    \"\"\"\n",
        "    Establish parent-child relationships between titles using BayesDown indentation rules.\n",
        "\n",
        "    In BayesDown syntax:\n",
        "    - More indented nodes (with + symbol) are PARENTS of less indented nodes\n",
        "    - The relationship reads as \"Effect is caused by Cause\" (Effect + Cause)\n",
        "    - This aligns with how Bayesian networks represent causality\n",
        "\n",
        "    Args:\n",
        "        titles_info (dict): Dictionary with information about titles\n",
        "        text (str): Original markdown text (for identifying line numbers)\n",
        "\n",
        "    Returns:\n",
        "        dict: Updated dictionary with parent-child relationships\n",
        "    \"\"\"\n",
        "    lines = text.split('\\n')\n",
        "\n",
        "    # Dictionary to store line numbers for each title occurrence\n",
        "    title_occurrences = {}\n",
        "\n",
        "    # Record line number for each title (including multiple occurrences)\n",
        "    line_number = 0\n",
        "    for line in lines:\n",
        "        if not line.strip():\n",
        "            line_number += 1\n",
        "            continue\n",
        "\n",
        "        title_match = re.search(r'[<\\[](.+?)[>\\]]', line)\n",
        "        if not title_match:\n",
        "            line_number += 1\n",
        "            continue\n",
        "\n",
        "        title = title_match.group(1)\n",
        "\n",
        "        # Store all occurrences of each title with their line numbers\n",
        "        if title not in title_occurrences:\n",
        "            title_occurrences[title] = []\n",
        "        title_occurrences[title].append(line_number)\n",
        "\n",
        "        # Store all line numbers where this title appears\n",
        "        if 'line_numbers' not in titles_info[title]:\n",
        "            titles_info[title]['line_numbers'] = []\n",
        "        titles_info[title]['line_numbers'].append(line_number)\n",
        "\n",
        "        # For backward compatibility, keep the first occurrence in 'line'\n",
        "        if titles_info[title]['line'] is None:\n",
        "            titles_info[title]['line'] = line_number\n",
        "\n",
        "        line_number += 1\n",
        "\n",
        "    # Create an ordered list of all title occurrences with their line numbers\n",
        "    all_occurrences = []\n",
        "    for title, occurrences in title_occurrences.items():\n",
        "        for line_num in occurrences:\n",
        "            all_occurrences.append((title, line_num))\n",
        "\n",
        "    # Sort occurrences by line number\n",
        "    all_occurrences.sort(key=lambda x: x[1])\n",
        "\n",
        "    # Get indentation for each occurrence\n",
        "    occurrence_indents = {}\n",
        "    for title, line_num in all_occurrences:\n",
        "        for line in lines[line_num:line_num+1]:  # Only check the current line\n",
        "            indent = 0\n",
        "            if '+' in line:\n",
        "                symbol_index = line.find('+')\n",
        "                # Count spaces before the '+' symbol\n",
        "                j = symbol_index - 1\n",
        "                while j >= 0 and line[j] == ' ':\n",
        "                    indent += 1\n",
        "                    j -= 1\n",
        "            elif '-' in line:\n",
        "                symbol_index = line.find('-')\n",
        "                # Count spaces before the '-' symbol\n",
        "                j = symbol_index - 1\n",
        "                while j >= 0 and line[j] == ' ':\n",
        "                    indent += 1\n",
        "                    j -= 1\n",
        "            occurrence_indents[(title, line_num)] = indent\n",
        "\n",
        "    # Enhanced backward pass for correct parent-child relationships\n",
        "    for i, (title, line_num) in enumerate(all_occurrences):\n",
        "        current_indent = occurrence_indents[(title, line_num)]\n",
        "\n",
        "        # Skip root nodes (indentation 0) for processing\n",
        "        if current_indent == 0:\n",
        "            continue\n",
        "\n",
        "        # Look for the immediately preceding node with lower indentation\n",
        "        j = i - 1\n",
        "        while j >= 0:\n",
        "            prev_title, prev_line = all_occurrences[j]\n",
        "            prev_indent = occurrence_indents[(prev_title, prev_line)]\n",
        "\n",
        "            # If we find a node with less indentation, it's a child of current node\n",
        "            if prev_indent < current_indent:\n",
        "                # In BayesDown: More indented node is a parent (cause) of less indented node (effect)\n",
        "                if title not in titles_info[prev_title]['parents']:\n",
        "                    titles_info[prev_title]['parents'].append(title)\n",
        "                if prev_title not in titles_info[title]['children']:\n",
        "                    titles_info[title]['children'].append(prev_title)\n",
        "\n",
        "                # Only need to find the immediate child (closest preceding node with lower indentation)\n",
        "                break\n",
        "\n",
        "            j -= 1\n",
        "\n",
        "    return titles_info\n",
        "\n",
        "def convert_to_dataframe(titles_info, ArgDown):\n",
        "    \"\"\"\n",
        "    Convert the titles information dictionary to a pandas DataFrame.\n",
        "\n",
        "    Args:\n",
        "        titles_info (dict): Dictionary with information about titles\n",
        "        ArgDown (bool): If True, extract only structural information without probabilities\n",
        "\n",
        "    Returns:\n",
        "        pandas.DataFrame: Structured data with node information and relationships\n",
        "    \"\"\"\n",
        "    if ArgDown == True:\n",
        "        # For ArgDown, exclude probability columns\n",
        "        df = pd.DataFrame(columns=['Title', 'Description', 'line', 'line_numbers', 'indentation',\n",
        "                               'indentation_levels', 'Parents', 'Children', 'instantiations'])\n",
        "    else:\n",
        "        # For BayesDown, include probability columns\n",
        "        df = pd.DataFrame(columns=['Title', 'Description', 'line', 'line_numbers', 'indentation',\n",
        "                               'indentation_levels', 'Parents', 'Children', 'instantiations',\n",
        "                               'priors', 'posteriors'])\n",
        "\n",
        "    for title, info in titles_info.items():\n",
        "        # Parse the metadata JSON string into a Python dictionary\n",
        "        if 'metadata' in info and info['metadata']:\n",
        "            try:\n",
        "                # Only try to parse if metadata is not empty\n",
        "                if info['metadata'].strip():\n",
        "                    jsonMetadata = json.loads(info['metadata'])\n",
        "                    if ArgDown == True:\n",
        "                        # Create the row dictionary with instantiations as metadata only, no probabilities yet\n",
        "                        row = {\n",
        "                            'Title': title,\n",
        "                            'Description': info.get('description', ''),\n",
        "                            'line': info.get('line',''),\n",
        "                            'line_numbers': info.get('line_numbers', []),\n",
        "                            'indentation': info.get('indentation',''),\n",
        "                            'indentation_levels': info.get('indentation_levels', []),\n",
        "                            'Parents': info.get('parents', []),\n",
        "                            'Children': info.get('children', []),\n",
        "                            # Extract specific metadata fields, defaulting to empty if not present\n",
        "                            'instantiations': jsonMetadata.get('instantiations', []),\n",
        "                        }\n",
        "                    else:\n",
        "                        # Create dict with probabilities for BayesDown\n",
        "                        row = {\n",
        "                            'Title': title,\n",
        "                            'Description': info.get('description', ''),\n",
        "                            'line': info.get('line',''),\n",
        "                            'line_numbers': info.get('line_numbers', []),\n",
        "                            'indentation': info.get('indentation',''),\n",
        "                            'indentation_levels': info.get('indentation_levels', []),\n",
        "                            'Parents': info.get('parents', []),\n",
        "                            'Children': info.get('children', []),\n",
        "                            # Extract specific metadata fields, defaulting to empty if not present\n",
        "                            'instantiations': jsonMetadata.get('instantiations', []),\n",
        "                            'priors': jsonMetadata.get('priors', {}),\n",
        "                            'posteriors': jsonMetadata.get('posteriors', {})\n",
        "                        }\n",
        "                else:\n",
        "                    # Empty metadata case\n",
        "                    row = {\n",
        "                        'Title': title,\n",
        "                        'Description': info.get('description', ''),\n",
        "                        'line': info.get('line',''),\n",
        "                        'line_numbers': info.get('line_numbers', []),\n",
        "                        'indentation': info.get('indentation',''),\n",
        "                        'indentation_levels': info.get('indentation_levels', []),\n",
        "                        'Parents': info.get('parents', []),\n",
        "                        'Children': info.get('children', []),\n",
        "                        'instantiations': [],\n",
        "                        'priors': {},\n",
        "                        'posteriors': {}\n",
        "                    }\n",
        "            except json.JSONDecodeError:\n",
        "                # Handle case where metadata isn't valid JSON\n",
        "                row = {\n",
        "                    'Title': title,\n",
        "                    'Description': info.get('description', ''),\n",
        "                    'line': info.get('line',''),\n",
        "                    'line_numbers': info.get('line_numbers', []),\n",
        "                    'indentation': info.get('indentation',''),\n",
        "                    'indentation_levels': info.get('indentation_levels', []),\n",
        "                    'Parents': info.get('parents', []),\n",
        "                    'Children': info.get('children', []),\n",
        "                    'instantiations': [],\n",
        "                    'priors': {},\n",
        "                    'posteriors': {}\n",
        "                }\n",
        "        else:\n",
        "            # Handle case where metadata field doesn't exist or is empty\n",
        "            row = {\n",
        "                'Title': title,\n",
        "                'Description': info.get('description', ''),\n",
        "                'line': info.get('line',''),\n",
        "                'line_numbers': info.get('line_numbers', []),\n",
        "                'indentation': info.get('indentation',''),\n",
        "                'indentation_levels': info.get('indentation_levels', []),\n",
        "                'Parents': info.get('parents', []),\n",
        "                'Children': info.get('children', []),\n",
        "                'instantiations': [],\n",
        "                'priors': {},\n",
        "                'posteriors': {}\n",
        "            }\n",
        "\n",
        "        # Add the row to the DataFrame\n",
        "        df.loc[len(df)] = row\n",
        "\n",
        "    return df\n",
        "\n",
        "def add_no_parent_no_child_columns_to_df(dataframe):\n",
        "    \"\"\"\n",
        "    Add No_Parent and No_Children boolean columns to the DataFrame to identify root and leaf nodes.\n",
        "\n",
        "    Args:\n",
        "        dataframe (pandas.DataFrame): The DataFrame to enhance\n",
        "\n",
        "    Returns:\n",
        "        pandas.DataFrame: Enhanced DataFrame with additional boolean columns\n",
        "    \"\"\"\n",
        "    no_parent = []\n",
        "    no_children = []\n",
        "\n",
        "    for _, row in dataframe.iterrows():\n",
        "        no_parent.append(not row['Parents'])  # True if Parents list is empty\n",
        "        no_children.append(not row['Children'])  # True if Children list is empty\n",
        "\n",
        "    dataframe['No_Parent'] = no_parent\n",
        "    dataframe['No_Children'] = no_children\n",
        "\n",
        "    return dataframe\n",
        "\n",
        "def add_parents_instantiation_columns_to_df(dataframe):\n",
        "    \"\"\"\n",
        "    Add all possible instantiations of parents as a list of lists column to the DataFrame.\n",
        "    This is crucial for generating conditional probability tables.\n",
        "\n",
        "    Args:\n",
        "        dataframe (pandas.DataFrame): The DataFrame to enhance\n",
        "\n",
        "    Returns:\n",
        "        pandas.DataFrame: Enhanced DataFrame with parent_instantiations column\n",
        "    \"\"\"\n",
        "    # Create a new column to store parent instantiations\n",
        "    parent_instantiations = []\n",
        "\n",
        "    # Iterate through each row in the dataframe\n",
        "    for _, row in dataframe.iterrows():\n",
        "        parents = row['Parents']\n",
        "        parent_insts = []\n",
        "\n",
        "        # For each parent, find its instantiations and add to the list\n",
        "        for parent in parents:\n",
        "            # Find the row where Title matches the parent\n",
        "            parent_row = dataframe[dataframe['Title'] == parent]\n",
        "\n",
        "            # If parent found in the dataframe\n",
        "            if not parent_row.empty:\n",
        "                # Get the instantiations of this parent\n",
        "                parent_instantiation = parent_row['instantiations'].iloc[0]\n",
        "                parent_insts.append(parent_instantiation)\n",
        "\n",
        "        # Add the list of parent instantiations to our new column\n",
        "        parent_instantiations.append(parent_insts)\n",
        "\n",
        "    # Add the new column to the dataframe\n",
        "    dataframe['parent_instantiations'] = parent_instantiations\n",
        "\n",
        "    return dataframe"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ibjjJ34v3sQn",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 2474
        },
        "outputId": "17464a4a-7560-4385-b8ca-940d2f764160"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                          Title  \\\n",
              "0       Existential_Catastrophe   \n",
              "1          Human_Disempowerment   \n",
              "2        Scale_Of_Power_Seeking   \n",
              "3      Misaligned_Power_Seeking   \n",
              "4                   APS_Systems   \n",
              "5        Advanced_AI_Capability   \n",
              "6              Agentic_Planning   \n",
              "7           Strategic_Awareness   \n",
              "8       Difficulty_Of_Alignment   \n",
              "9      Instrumental_Convergence   \n",
              "10        Problems_With_Proxies   \n",
              "11         Problems_With_Search   \n",
              "12         Deployment_Decisions   \n",
              "13      Incentives_To_Build_APS   \n",
              "14            Usefulness_Of_APS   \n",
              "15         Competitive_Dynamics   \n",
              "16              Deception_By_AI   \n",
              "17          Corrective_Feedback   \n",
              "18                Warning_Shots   \n",
              "19  Rapid_Capability_Escalation   \n",
              "20    Barriers_To_Understanding   \n",
              "21         Adversarial_Dynamics   \n",
              "22              Stakes_Of_Error   \n",
              "\n",
              "                                          Description  line     line_numbers  \\\n",
              "0   The destruction of humanity's long-term potent...     0              [0]   \n",
              "1   Permanent and collective disempowerment of hum...     1              [1]   \n",
              "2   Power-seeking by AI systems scaling to the poi...     2              [2]   \n",
              "3   Deployed AI systems seeking power in unintende...     3  [3, 21, 23, 25]   \n",
              "4   AI systems with advanced capabilities, agentic...     4              [4]   \n",
              "5   AI systems that outperform humans on tasks tha...     5              [5]   \n",
              "6   AI systems making and executing plans based on...     6              [6]   \n",
              "7   AI systems with models accurately representing...     7              [7]   \n",
              "8   It is harder to build aligned systems than mis...     8              [8]   \n",
              "9   AI systems with misaligned objectives tend to ...     9              [9]   \n",
              "10  Optimizing for proxy objectives breaks correla...    10             [10]   \n",
              "11  Search processes can yield systems pursuing di...    11             [11]   \n",
              "12  Decisions to deploy potentially misaligned AI ...    12             [12]   \n",
              "13  Strong incentives to build and deploy APS syst...    13             [13]   \n",
              "14  APS systems are very useful for many valuable ...    14             [14]   \n",
              "15       Competitive pressures between AI developers.    15             [15]   \n",
              "16  AI systems deceiving humans about their true o...    16             [16]   \n",
              "17  Human society implementing corrections after o...    17             [17]   \n",
              "18  Observable failures in weaker systems before c...    18             [18]   \n",
              "19  AI capabilities escalating very rapidly, allow...    19             [19]   \n",
              "20  Difficulty in understanding the internal worki...    20             [20]   \n",
              "21  Potentially adversarial relationships between ...    22             [22]   \n",
              "22  The escalating impact of mistakes with power-s...    24             [24]   \n",
              "\n",
              "    indentation indentation_levels  \\\n",
              "0             0                [0]   \n",
              "1             0                [0]   \n",
              "2             4                [4]   \n",
              "3             8       [8, 0, 0, 0]   \n",
              "4            12               [12]   \n",
              "5            16               [16]   \n",
              "6            16               [16]   \n",
              "7            16               [16]   \n",
              "8            12               [12]   \n",
              "9            16               [16]   \n",
              "10           16               [16]   \n",
              "11           16               [16]   \n",
              "12           12               [12]   \n",
              "13           16               [16]   \n",
              "14           20               [20]   \n",
              "15           20               [20]   \n",
              "16           16               [16]   \n",
              "17            8                [8]   \n",
              "18           12               [12]   \n",
              "19           12               [12]   \n",
              "20            0                [0]   \n",
              "21            0                [0]   \n",
              "22            0                [0]   \n",
              "\n",
              "                                              Parents  \\\n",
              "0                                                  []   \n",
              "1                            [Scale_Of_Power_Seeking]   \n",
              "2     [Misaligned_Power_Seeking, Corrective_Feedback]   \n",
              "3   [APS_Systems, Difficulty_Of_Alignment, Deploym...   \n",
              "4   [Advanced_AI_Capability, Agentic_Planning, Str...   \n",
              "5                                                  []   \n",
              "6                                                  []   \n",
              "7                                                  []   \n",
              "8   [Instrumental_Convergence, Problems_With_Proxi...   \n",
              "9                                                  []   \n",
              "10                                                 []   \n",
              "11                                                 []   \n",
              "12         [Incentives_To_Build_APS, Deception_By_AI]   \n",
              "13          [Usefulness_Of_APS, Competitive_Dynamics]   \n",
              "14                                                 []   \n",
              "15                                                 []   \n",
              "16                                                 []   \n",
              "17       [Warning_Shots, Rapid_Capability_Escalation]   \n",
              "18                                                 []   \n",
              "19                                                 []   \n",
              "20                                                 []   \n",
              "21                                                 []   \n",
              "22                                                 []   \n",
              "\n",
              "                      Children  \\\n",
              "0                           []   \n",
              "1                           []   \n",
              "2       [Human_Disempowerment]   \n",
              "3     [Scale_Of_Power_Seeking]   \n",
              "4   [Misaligned_Power_Seeking]   \n",
              "5                [APS_Systems]   \n",
              "6                [APS_Systems]   \n",
              "7                [APS_Systems]   \n",
              "8   [Misaligned_Power_Seeking]   \n",
              "9    [Difficulty_Of_Alignment]   \n",
              "10   [Difficulty_Of_Alignment]   \n",
              "11   [Difficulty_Of_Alignment]   \n",
              "12  [Misaligned_Power_Seeking]   \n",
              "13      [Deployment_Decisions]   \n",
              "14   [Incentives_To_Build_APS]   \n",
              "15   [Incentives_To_Build_APS]   \n",
              "16      [Deployment_Decisions]   \n",
              "17    [Scale_Of_Power_Seeking]   \n",
              "18       [Corrective_Feedback]   \n",
              "19       [Corrective_Feedback]   \n",
              "20                          []   \n",
              "21                          []   \n",
              "22                          []   \n",
              "\n",
              "                                       instantiations  No_Parent  No_Children  \\\n",
              "0   [existential_catastrophe_TRUE, existential_cat...       True         True   \n",
              "1   [human_disempowerment_TRUE, human_disempowerme...      False         True   \n",
              "2   [scale_of_power_seeking_TRUE, scale_of_power_s...      False        False   \n",
              "3   [misaligned_power_seeking_TRUE, misaligned_pow...      False        False   \n",
              "4               [aps_systems_TRUE, aps_systems_FALSE]      False        False   \n",
              "5   [advanced_ai_capability_TRUE, advanced_ai_capa...       True        False   \n",
              "6     [agentic_planning_TRUE, agentic_planning_FALSE]       True        False   \n",
              "7   [strategic_awareness_TRUE, strategic_awareness...       True        False   \n",
              "8   [difficulty_of_alignment_TRUE, difficulty_of_a...      False        False   \n",
              "9   [instrumental_convergence_TRUE, instrumental_c...       True        False   \n",
              "10  [problems_with_proxies_TRUE, problems_with_pro...       True        False   \n",
              "11  [problems_with_search_TRUE, problems_with_sear...       True        False   \n",
              "12  [deployment_decisions_DEPLOY, deployment_decis...      False        False   \n",
              "13  [incentives_to_build_aps_STRONG, incentives_to...      False        False   \n",
              "14    [usefulness_of_aps_HIGH, usefulness_of_aps_LOW]       True        False   \n",
              "15  [competitive_dynamics_STRONG, competitive_dyna...       True        False   \n",
              "16      [deception_by_ai_TRUE, deception_by_ai_FALSE]       True        False   \n",
              "17  [corrective_feedback_EFFECTIVE, corrective_fee...      False        False   \n",
              "18  [warning_shots_OBSERVED, warning_shots_UNOBSER...       True        False   \n",
              "19  [rapid_capability_escalation_TRUE, rapid_capab...       True        False   \n",
              "20  [barriers_to_understanding_HIGH, barriers_to_u...       True         True   \n",
              "21  [adversarial_dynamics_TRUE, adversarial_dynami...       True         True   \n",
              "22        [stakes_of_error_HIGH, stakes_of_error_LOW]       True         True   \n",
              "\n",
              "                                parent_instantiations  \n",
              "0                                                  []  \n",
              "1   [[scale_of_power_seeking_TRUE, scale_of_power_...  \n",
              "2   [[misaligned_power_seeking_TRUE, misaligned_po...  \n",
              "3   [[aps_systems_TRUE, aps_systems_FALSE], [diffi...  \n",
              "4   [[advanced_ai_capability_TRUE, advanced_ai_cap...  \n",
              "5                                                  []  \n",
              "6                                                  []  \n",
              "7                                                  []  \n",
              "8   [[instrumental_convergence_TRUE, instrumental_...  \n",
              "9                                                  []  \n",
              "10                                                 []  \n",
              "11                                                 []  \n",
              "12  [[incentives_to_build_aps_STRONG, incentives_t...  \n",
              "13  [[usefulness_of_aps_HIGH, usefulness_of_aps_LO...  \n",
              "14                                                 []  \n",
              "15                                                 []  \n",
              "16                                                 []  \n",
              "17  [[warning_shots_OBSERVED, warning_shots_UNOBSE...  \n",
              "18                                                 []  \n",
              "19                                                 []  \n",
              "20                                                 []  \n",
              "21                                                 []  \n",
              "22                                                 []  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-a1d96002-e6b3-444c-9d9d-41bcc5a5be98\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Title</th>\n",
              "      <th>Description</th>\n",
              "      <th>line</th>\n",
              "      <th>line_numbers</th>\n",
              "      <th>indentation</th>\n",
              "      <th>indentation_levels</th>\n",
              "      <th>Parents</th>\n",
              "      <th>Children</th>\n",
              "      <th>instantiations</th>\n",
              "      <th>No_Parent</th>\n",
              "      <th>No_Children</th>\n",
              "      <th>parent_instantiations</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Existential_Catastrophe</td>\n",
              "      <td>The destruction of humanity's long-term potent...</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[existential_catastrophe_TRUE, existential_cat...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Human_Disempowerment</td>\n",
              "      <td>Permanent and collective disempowerment of hum...</td>\n",
              "      <td>1</td>\n",
              "      <td>[1]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[Scale_Of_Power_Seeking]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[human_disempowerment_TRUE, human_disempowerme...</td>\n",
              "      <td>False</td>\n",
              "      <td>True</td>\n",
              "      <td>[[scale_of_power_seeking_TRUE, scale_of_power_...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Scale_Of_Power_Seeking</td>\n",
              "      <td>Power-seeking by AI systems scaling to the poi...</td>\n",
              "      <td>2</td>\n",
              "      <td>[2]</td>\n",
              "      <td>4</td>\n",
              "      <td>[4]</td>\n",
              "      <td>[Misaligned_Power_Seeking, Corrective_Feedback]</td>\n",
              "      <td>[Human_Disempowerment]</td>\n",
              "      <td>[scale_of_power_seeking_TRUE, scale_of_power_s...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[misaligned_power_seeking_TRUE, misaligned_po...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Misaligned_Power_Seeking</td>\n",
              "      <td>Deployed AI systems seeking power in unintende...</td>\n",
              "      <td>3</td>\n",
              "      <td>[3, 21, 23, 25]</td>\n",
              "      <td>8</td>\n",
              "      <td>[8, 0, 0, 0]</td>\n",
              "      <td>[APS_Systems, Difficulty_Of_Alignment, Deploym...</td>\n",
              "      <td>[Scale_Of_Power_Seeking]</td>\n",
              "      <td>[misaligned_power_seeking_TRUE, misaligned_pow...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[aps_systems_TRUE, aps_systems_FALSE], [diffi...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>APS_Systems</td>\n",
              "      <td>AI systems with advanced capabilities, agentic...</td>\n",
              "      <td>4</td>\n",
              "      <td>[4]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[Advanced_AI_Capability, Agentic_Planning, Str...</td>\n",
              "      <td>[Misaligned_Power_Seeking]</td>\n",
              "      <td>[aps_systems_TRUE, aps_systems_FALSE]</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[advanced_ai_capability_TRUE, advanced_ai_cap...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>Advanced_AI_Capability</td>\n",
              "      <td>AI systems that outperform humans on tasks tha...</td>\n",
              "      <td>5</td>\n",
              "      <td>[5]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[APS_Systems]</td>\n",
              "      <td>[advanced_ai_capability_TRUE, advanced_ai_capa...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>Agentic_Planning</td>\n",
              "      <td>AI systems making and executing plans based on...</td>\n",
              "      <td>6</td>\n",
              "      <td>[6]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[APS_Systems]</td>\n",
              "      <td>[agentic_planning_TRUE, agentic_planning_FALSE]</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>Strategic_Awareness</td>\n",
              "      <td>AI systems with models accurately representing...</td>\n",
              "      <td>7</td>\n",
              "      <td>[7]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[APS_Systems]</td>\n",
              "      <td>[strategic_awareness_TRUE, strategic_awareness...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>Difficulty_Of_Alignment</td>\n",
              "      <td>It is harder to build aligned systems than mis...</td>\n",
              "      <td>8</td>\n",
              "      <td>[8]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[Instrumental_Convergence, Problems_With_Proxi...</td>\n",
              "      <td>[Misaligned_Power_Seeking]</td>\n",
              "      <td>[difficulty_of_alignment_TRUE, difficulty_of_a...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[instrumental_convergence_TRUE, instrumental_...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>Instrumental_Convergence</td>\n",
              "      <td>AI systems with misaligned objectives tend to ...</td>\n",
              "      <td>9</td>\n",
              "      <td>[9]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Difficulty_Of_Alignment]</td>\n",
              "      <td>[instrumental_convergence_TRUE, instrumental_c...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>Problems_With_Proxies</td>\n",
              "      <td>Optimizing for proxy objectives breaks correla...</td>\n",
              "      <td>10</td>\n",
              "      <td>[10]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Difficulty_Of_Alignment]</td>\n",
              "      <td>[problems_with_proxies_TRUE, problems_with_pro...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>Problems_With_Search</td>\n",
              "      <td>Search processes can yield systems pursuing di...</td>\n",
              "      <td>11</td>\n",
              "      <td>[11]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Difficulty_Of_Alignment]</td>\n",
              "      <td>[problems_with_search_TRUE, problems_with_sear...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>Deployment_Decisions</td>\n",
              "      <td>Decisions to deploy potentially misaligned AI ...</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[Incentives_To_Build_APS, Deception_By_AI]</td>\n",
              "      <td>[Misaligned_Power_Seeking]</td>\n",
              "      <td>[deployment_decisions_DEPLOY, deployment_decis...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[incentives_to_build_aps_STRONG, incentives_t...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>Incentives_To_Build_APS</td>\n",
              "      <td>Strong incentives to build and deploy APS syst...</td>\n",
              "      <td>13</td>\n",
              "      <td>[13]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[Usefulness_Of_APS, Competitive_Dynamics]</td>\n",
              "      <td>[Deployment_Decisions]</td>\n",
              "      <td>[incentives_to_build_aps_STRONG, incentives_to...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[usefulness_of_aps_HIGH, usefulness_of_aps_LO...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>Usefulness_Of_APS</td>\n",
              "      <td>APS systems are very useful for many valuable ...</td>\n",
              "      <td>14</td>\n",
              "      <td>[14]</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Incentives_To_Build_APS]</td>\n",
              "      <td>[usefulness_of_aps_HIGH, usefulness_of_aps_LOW]</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>Competitive_Dynamics</td>\n",
              "      <td>Competitive pressures between AI developers.</td>\n",
              "      <td>15</td>\n",
              "      <td>[15]</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Incentives_To_Build_APS]</td>\n",
              "      <td>[competitive_dynamics_STRONG, competitive_dyna...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>Deception_By_AI</td>\n",
              "      <td>AI systems deceiving humans about their true o...</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Deployment_Decisions]</td>\n",
              "      <td>[deception_by_ai_TRUE, deception_by_ai_FALSE]</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>Corrective_Feedback</td>\n",
              "      <td>Human society implementing corrections after o...</td>\n",
              "      <td>17</td>\n",
              "      <td>[17]</td>\n",
              "      <td>8</td>\n",
              "      <td>[8]</td>\n",
              "      <td>[Warning_Shots, Rapid_Capability_Escalation]</td>\n",
              "      <td>[Scale_Of_Power_Seeking]</td>\n",
              "      <td>[corrective_feedback_EFFECTIVE, corrective_fee...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[warning_shots_OBSERVED, warning_shots_UNOBSE...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>Warning_Shots</td>\n",
              "      <td>Observable failures in weaker systems before c...</td>\n",
              "      <td>18</td>\n",
              "      <td>[18]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Corrective_Feedback]</td>\n",
              "      <td>[warning_shots_OBSERVED, warning_shots_UNOBSER...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>Rapid_Capability_Escalation</td>\n",
              "      <td>AI capabilities escalating very rapidly, allow...</td>\n",
              "      <td>19</td>\n",
              "      <td>[19]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Corrective_Feedback]</td>\n",
              "      <td>[rapid_capability_escalation_TRUE, rapid_capab...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>20</th>\n",
              "      <td>Barriers_To_Understanding</td>\n",
              "      <td>Difficulty in understanding the internal worki...</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[barriers_to_understanding_HIGH, barriers_to_u...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>Adversarial_Dynamics</td>\n",
              "      <td>Potentially adversarial relationships between ...</td>\n",
              "      <td>22</td>\n",
              "      <td>[22]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[adversarial_dynamics_TRUE, adversarial_dynami...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>22</th>\n",
              "      <td>Stakes_Of_Error</td>\n",
              "      <td>The escalating impact of mistakes with power-s...</td>\n",
              "      <td>24</td>\n",
              "      <td>[24]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[stakes_of_error_HIGH, stakes_of_error_LOW]</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a1d96002-e6b3-444c-9d9d-41bcc5a5be98')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-a1d96002-e6b3-444c-9d9d-41bcc5a5be98 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-a1d96002-e6b3-444c-9d9d-41bcc5a5be98');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    <div id=\"df-2c8df831-c3ff-4de2-a641-ece25e7a16cf\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-2c8df831-c3ff-4de2-a641-ece25e7a16cf')\"\n",
              "                title=\"Suggest charts\"\n",
              "                style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "      <script>\n",
              "        async function quickchart(key) {\n",
              "          const quickchartButtonEl =\n",
              "            document.querySelector('#' + key + ' button');\n",
              "          quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "          quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "          try {\n",
              "            const charts = await google.colab.kernel.invokeFunction(\n",
              "                'suggestCharts', [key], {});\n",
              "          } catch (error) {\n",
              "            console.error('Error during call to suggestCharts:', error);\n",
              "          }\n",
              "          quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "          quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "        }\n",
              "        (() => {\n",
              "          let quickchartButtonEl =\n",
              "            document.querySelector('#df-2c8df831-c3ff-4de2-a641-ece25e7a16cf button');\n",
              "          quickchartButtonEl.style.display =\n",
              "            google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "        })();\n",
              "      </script>\n",
              "    </div>\n",
              "\n",
              "  <div id=\"id_547d2e30-136a-4a77-b6a4-6f9776a5e1d2\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('ex_csv')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_547d2e30-136a-4a77-b6a4-6f9776a5e1d2 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('ex_csv');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "ex_csv",
              "summary": "{\n  \"name\": \"ex_csv\",\n  \"rows\": 23,\n  \"fields\": [\n    {\n      \"column\": \"Title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"Competitive_Dynamics\",\n          \"Instrumental_Convergence\",\n          \"Existential_Catastrophe\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Description\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"Competitive pressures between AI developers.\",\n          \"AI systems with misaligned objectives tend to seek power as an instrumental goal.\",\n          \"The destruction of humanity's long-term potential due to AI systems we've lost control over.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"line\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7,\n        \"min\": 0,\n        \"max\": 24,\n        \"num_unique_values\": 23,\n        \"samples\": [\n          15,\n          9,\n          0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"line_numbers\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"indentation\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 6,\n        \"min\": 0,\n        \"max\": 20,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0,\n          4,\n          20\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"indentation_levels\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Parents\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Children\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"instantiations\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"No_Parent\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"No_Children\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"parent_instantiations\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 24
        }
      ],
      "source": [
        "# example use case:\n",
        "ex_csv = parse_markdown_hierarchy_fixed(md_content, ArgDown = True)\n",
        "ex_csv"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iFC6oiyICREn"
      },
      "source": [
        "## 1.8 Store ArgDown Information as 'ArgDown.csv' file"
      ]
    },
    {
      "source": [
        "# Assuming 'md_content' holds the markdown text\n",
        "# Store the results of running the function parse_markdown_hierarchy(md_content, ArgDown = True) as the file 'ArgDown.csv'\n",
        "result_df = parse_markdown_hierarchy_fixed(md_content, ArgDown = True)\n",
        "\n",
        "# Save to CSV\n",
        "result_df.to_csv('ArgDown.csv', index=False)"
      ],
      "cell_type": "code",
      "metadata": {
        "id": "kysuz6rWU4o2"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# Test if 'ArgDown.csv' has been saved correctly with the correct information\n",
        "# Load the data from the CSV file\n",
        "argdown_df = pd.read_csv('ArgDown.csv')\n",
        "\n",
        "# Display the DataFrame\n",
        "print(argdown_df)"
      ],
      "metadata": {
        "id": "Kg_GP5NLUaEG",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d3db05a2-68b3-439a-9dd2-a48eb350fd18"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                          Title  \\\n",
            "0       Existential_Catastrophe   \n",
            "1          Human_Disempowerment   \n",
            "2        Scale_Of_Power_Seeking   \n",
            "3      Misaligned_Power_Seeking   \n",
            "4                   APS_Systems   \n",
            "5        Advanced_AI_Capability   \n",
            "6              Agentic_Planning   \n",
            "7           Strategic_Awareness   \n",
            "8       Difficulty_Of_Alignment   \n",
            "9      Instrumental_Convergence   \n",
            "10        Problems_With_Proxies   \n",
            "11         Problems_With_Search   \n",
            "12         Deployment_Decisions   \n",
            "13      Incentives_To_Build_APS   \n",
            "14            Usefulness_Of_APS   \n",
            "15         Competitive_Dynamics   \n",
            "16              Deception_By_AI   \n",
            "17          Corrective_Feedback   \n",
            "18                Warning_Shots   \n",
            "19  Rapid_Capability_Escalation   \n",
            "20    Barriers_To_Understanding   \n",
            "21         Adversarial_Dynamics   \n",
            "22              Stakes_Of_Error   \n",
            "\n",
            "                                          Description  line     line_numbers  \\\n",
            "0   The destruction of humanity's long-term potent...     0              [0]   \n",
            "1   Permanent and collective disempowerment of hum...     1              [1]   \n",
            "2   Power-seeking by AI systems scaling to the poi...     2              [2]   \n",
            "3   Deployed AI systems seeking power in unintende...     3  [3, 21, 23, 25]   \n",
            "4   AI systems with advanced capabilities, agentic...     4              [4]   \n",
            "5   AI systems that outperform humans on tasks tha...     5              [5]   \n",
            "6   AI systems making and executing plans based on...     6              [6]   \n",
            "7   AI systems with models accurately representing...     7              [7]   \n",
            "8   It is harder to build aligned systems than mis...     8              [8]   \n",
            "9   AI systems with misaligned objectives tend to ...     9              [9]   \n",
            "10  Optimizing for proxy objectives breaks correla...    10             [10]   \n",
            "11  Search processes can yield systems pursuing di...    11             [11]   \n",
            "12  Decisions to deploy potentially misaligned AI ...    12             [12]   \n",
            "13  Strong incentives to build and deploy APS syst...    13             [13]   \n",
            "14  APS systems are very useful for many valuable ...    14             [14]   \n",
            "15       Competitive pressures between AI developers.    15             [15]   \n",
            "16  AI systems deceiving humans about their true o...    16             [16]   \n",
            "17  Human society implementing corrections after o...    17             [17]   \n",
            "18  Observable failures in weaker systems before c...    18             [18]   \n",
            "19  AI capabilities escalating very rapidly, allow...    19             [19]   \n",
            "20  Difficulty in understanding the internal worki...    20             [20]   \n",
            "21  Potentially adversarial relationships between ...    22             [22]   \n",
            "22  The escalating impact of mistakes with power-s...    24             [24]   \n",
            "\n",
            "    indentation indentation_levels  \\\n",
            "0             0                [0]   \n",
            "1             0                [0]   \n",
            "2             4                [4]   \n",
            "3             8       [8, 0, 0, 0]   \n",
            "4            12               [12]   \n",
            "5            16               [16]   \n",
            "6            16               [16]   \n",
            "7            16               [16]   \n",
            "8            12               [12]   \n",
            "9            16               [16]   \n",
            "10           16               [16]   \n",
            "11           16               [16]   \n",
            "12           12               [12]   \n",
            "13           16               [16]   \n",
            "14           20               [20]   \n",
            "15           20               [20]   \n",
            "16           16               [16]   \n",
            "17            8                [8]   \n",
            "18           12               [12]   \n",
            "19           12               [12]   \n",
            "20            0                [0]   \n",
            "21            0                [0]   \n",
            "22            0                [0]   \n",
            "\n",
            "                                              Parents  \\\n",
            "0                                                  []   \n",
            "1                          ['Scale_Of_Power_Seeking']   \n",
            "2   ['Misaligned_Power_Seeking', 'Corrective_Feedb...   \n",
            "3   ['APS_Systems', 'Difficulty_Of_Alignment', 'De...   \n",
            "4   ['Advanced_AI_Capability', 'Agentic_Planning',...   \n",
            "5                                                  []   \n",
            "6                                                  []   \n",
            "7                                                  []   \n",
            "8   ['Instrumental_Convergence', 'Problems_With_Pr...   \n",
            "9                                                  []   \n",
            "10                                                 []   \n",
            "11                                                 []   \n",
            "12     ['Incentives_To_Build_APS', 'Deception_By_AI']   \n",
            "13      ['Usefulness_Of_APS', 'Competitive_Dynamics']   \n",
            "14                                                 []   \n",
            "15                                                 []   \n",
            "16                                                 []   \n",
            "17   ['Warning_Shots', 'Rapid_Capability_Escalation']   \n",
            "18                                                 []   \n",
            "19                                                 []   \n",
            "20                                                 []   \n",
            "21                                                 []   \n",
            "22                                                 []   \n",
            "\n",
            "                        Children  \\\n",
            "0                             []   \n",
            "1                             []   \n",
            "2       ['Human_Disempowerment']   \n",
            "3     ['Scale_Of_Power_Seeking']   \n",
            "4   ['Misaligned_Power_Seeking']   \n",
            "5                ['APS_Systems']   \n",
            "6                ['APS_Systems']   \n",
            "7                ['APS_Systems']   \n",
            "8   ['Misaligned_Power_Seeking']   \n",
            "9    ['Difficulty_Of_Alignment']   \n",
            "10   ['Difficulty_Of_Alignment']   \n",
            "11   ['Difficulty_Of_Alignment']   \n",
            "12  ['Misaligned_Power_Seeking']   \n",
            "13      ['Deployment_Decisions']   \n",
            "14   ['Incentives_To_Build_APS']   \n",
            "15   ['Incentives_To_Build_APS']   \n",
            "16      ['Deployment_Decisions']   \n",
            "17    ['Scale_Of_Power_Seeking']   \n",
            "18       ['Corrective_Feedback']   \n",
            "19       ['Corrective_Feedback']   \n",
            "20                            []   \n",
            "21                            []   \n",
            "22                            []   \n",
            "\n",
            "                                       instantiations  No_Parent  No_Children  \\\n",
            "0   ['existential_catastrophe_TRUE', 'existential_...       True         True   \n",
            "1   ['human_disempowerment_TRUE', 'human_disempowe...      False         True   \n",
            "2   ['scale_of_power_seeking_TRUE', 'scale_of_powe...      False        False   \n",
            "3   ['misaligned_power_seeking_TRUE', 'misaligned_...      False        False   \n",
            "4           ['aps_systems_TRUE', 'aps_systems_FALSE']      False        False   \n",
            "5   ['advanced_ai_capability_TRUE', 'advanced_ai_c...       True        False   \n",
            "6   ['agentic_planning_TRUE', 'agentic_planning_FA...       True        False   \n",
            "7   ['strategic_awareness_TRUE', 'strategic_awaren...       True        False   \n",
            "8   ['difficulty_of_alignment_TRUE', 'difficulty_o...      False        False   \n",
            "9   ['instrumental_convergence_TRUE', 'instrumenta...       True        False   \n",
            "10  ['problems_with_proxies_TRUE', 'problems_with_...       True        False   \n",
            "11  ['problems_with_search_TRUE', 'problems_with_s...       True        False   \n",
            "12  ['deployment_decisions_DEPLOY', 'deployment_de...      False        False   \n",
            "13  ['incentives_to_build_aps_STRONG', 'incentives...      False        False   \n",
            "14  ['usefulness_of_aps_HIGH', 'usefulness_of_aps_...       True        False   \n",
            "15  ['competitive_dynamics_STRONG', 'competitive_d...       True        False   \n",
            "16  ['deception_by_ai_TRUE', 'deception_by_ai_FALSE']       True        False   \n",
            "17  ['corrective_feedback_EFFECTIVE', 'corrective_...      False        False   \n",
            "18  ['warning_shots_OBSERVED', 'warning_shots_UNOB...       True        False   \n",
            "19  ['rapid_capability_escalation_TRUE', 'rapid_ca...       True        False   \n",
            "20  ['barriers_to_understanding_HIGH', 'barriers_t...       True         True   \n",
            "21  ['adversarial_dynamics_TRUE', 'adversarial_dyn...       True         True   \n",
            "22    ['stakes_of_error_HIGH', 'stakes_of_error_LOW']       True         True   \n",
            "\n",
            "                                parent_instantiations  \n",
            "0                                                  []  \n",
            "1   [['scale_of_power_seeking_TRUE', 'scale_of_pow...  \n",
            "2   [['misaligned_power_seeking_TRUE', 'misaligned...  \n",
            "3   [['aps_systems_TRUE', 'aps_systems_FALSE'], ['...  \n",
            "4   [['advanced_ai_capability_TRUE', 'advanced_ai_...  \n",
            "5                                                  []  \n",
            "6                                                  []  \n",
            "7                                                  []  \n",
            "8   [['instrumental_convergence_TRUE', 'instrument...  \n",
            "9                                                  []  \n",
            "10                                                 []  \n",
            "11                                                 []  \n",
            "12  [['incentives_to_build_aps_STRONG', 'incentive...  \n",
            "13  [['usefulness_of_aps_HIGH', 'usefulness_of_aps...  \n",
            "14                                                 []  \n",
            "15                                                 []  \n",
            "16                                                 []  \n",
            "17  [['warning_shots_OBSERVED', 'warning_shots_UNO...  \n",
            "18                                                 []  \n",
            "19                                                 []  \n",
            "20                                                 []  \n",
            "21                                                 []  \n",
            "22                                                 []  \n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "7SGB0XMp5VFq"
      },
      "source": [
        "# 2.0 Probability Extractions: ArgDown (.csv) to BayesDown (.md + plugin JSON syntax)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 2. ArgDown to BayesDown: Adding Probability Information\n",
        "\n",
        "## Process Overview\n",
        "\n",
        "This section implements the second major stage of the AMTAIR pipeline: enhancing the structured argument representation (ArgDown) with probability information to create BayesDown.\n",
        "\n",
        "BayesDown extends ArgDown by adding:\n",
        "1. Prior probabilities for each variable (unconditional beliefs)\n",
        "2. Conditional probabilities representing the relationships between variables\n",
        "3. The full parameter specification needed for a Bayesian network\n",
        "\n",
        "The process follows these steps:\n",
        "1. Generate probability questions for each node and its relationships\n",
        "2. Create a BayesDown template with placeholders for these probabilities\n",
        "3. Answer the probability questions (manually or via LLM)\n",
        "4. Substitute the answers into the BayesDown representation\n",
        "\n",
        "This enhanced representation contains all the information needed to construct a formal Bayesian network, enabling probabilistic reasoning and policy evaluation.\n",
        "\n",
        "## What is BayesDown?\n",
        "\n",
        "BayesDown maintains the ArgDown structure but adds probability metadata:\n",
        "\n",
        "\n",
        "\n",
        "```\n",
        "[Node]: Description. {\n",
        "\"instantiations\": [\"node_TRUE\", \"node_FALSE\"],\n",
        "\"priors\": { \"p(node_TRUE)\": \"0.7\", \"p(node_FALSE)\": \"0.3\" },\n",
        "\"posteriors\": { \"p(node_TRUE|parent_TRUE)\": \"0.9\", \"p(node_TRUE|parent_FALSE)\": \"0.4\" }\n",
        "}\n",
        "```\n",
        "\n",
        "The result is a hybrid representation that preserves the narrative structure of arguments while adding the mathematical precision of Bayesian networks."
      ],
      "metadata": {
        "id": "hWkmySZYNtzS"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.1 Probability Extraction Questions --- 'ArgDown.csv' to 'ArgDown_WithQuestions.csv'"
      ],
      "metadata": {
        "id": "WcF2nHXBZru4"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 2.1 --- Probability Extraction Questions Generation ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Generates probability questions for ArgDown nodes to prepare for BayesDown conversion.\n",
        "\n",
        "This block implements a key step in the pipeline where structure (from ArgDown) is prepared\n",
        "for probability integration (to create BayesDown). It:\n",
        "\n",
        "1. Processes a CSV file containing ArgDown structure\n",
        "2. For each node, generates appropriate probability questions:\n",
        "   - Prior probability questions for all nodes\n",
        "   - Conditional probability questions for nodes with parents\n",
        "3. Creates a new CSV file with these questions ready for the next stage\n",
        "\n",
        "The generated questions serve as placeholders that will be answered in the\n",
        "probability extraction phase to complete the Bayesian network.\n",
        "\n",
        "DEPENDENCIES: pandas, json, itertools libraries\n",
        "INPUTS: ArgDown CSV file\n",
        "OUTPUTS: Enhanced CSV with probability questions for each node\n",
        "\"\"\"\n",
        "\n",
        "import pandas as pd\n",
        "import re\n",
        "import json\n",
        "import itertools\n",
        "from IPython.display import Markdown, display\n",
        "\n",
        "\n",
        "def parse_instantiations(instantiations_str):\n",
        "    \"\"\"\n",
        "    Parse instantiations from string or list format.\n",
        "    Handles various input formats flexibly.\n",
        "\n",
        "    Args:\n",
        "        instantiations_str: Instantiations in string or list format\n",
        "\n",
        "    Returns:\n",
        "        list: Parsed instantiations as a list\n",
        "    \"\"\"\n",
        "    if pd.isna(instantiations_str) or instantiations_str == '':\n",
        "        return []\n",
        "\n",
        "    if isinstance(instantiations_str, list):\n",
        "        return instantiations_str\n",
        "\n",
        "    try:\n",
        "        # Try to parse as JSON\n",
        "        return json.loads(instantiations_str)\n",
        "    except:\n",
        "        # Try to parse as string list\n",
        "        if isinstance(instantiations_str, str):\n",
        "            # Remove brackets and split by comma\n",
        "            clean_str = instantiations_str.strip('[]\"\\'')\n",
        "            if not clean_str:\n",
        "                return []\n",
        "            return [s.strip(' \"\\'') for s in clean_str.split(',') if s.strip()]\n",
        "\n",
        "    return []\n",
        "\n",
        "def parse_parents(parents_str):\n",
        "    \"\"\"\n",
        "    Parse parents from string or list format.\n",
        "    Handles various input formats flexibly.\n",
        "\n",
        "    Args:\n",
        "        parents_str: Parents in string or list format\n",
        "\n",
        "    Returns:\n",
        "        list: Parsed parents as a list\n",
        "    \"\"\"\n",
        "    if pd.isna(parents_str) or parents_str == '':\n",
        "        return []\n",
        "\n",
        "    if isinstance(parents_str, list):\n",
        "        return parents_str\n",
        "\n",
        "    try:\n",
        "        # Try to parse as JSON\n",
        "        return json.loads(parents_str)\n",
        "    except:\n",
        "        # Try to parse as string list\n",
        "        if isinstance(parents_str, str):\n",
        "            # Remove brackets and split by comma\n",
        "            clean_str = parents_str.strip('[]\"\\'')\n",
        "            if not clean_str:\n",
        "                return []\n",
        "            return [s.strip(' \"\\'') for s in clean_str.split(',') if s.strip()]\n",
        "\n",
        "    return []\n",
        "\n",
        "def get_parent_instantiations(parent, df):\n",
        "    \"\"\"\n",
        "    Get the instantiations for a parent node from the DataFrame.\n",
        "    Returns default instantiations if not found.\n",
        "\n",
        "    Args:\n",
        "        parent (str): Parent node name\n",
        "        df (DataFrame): DataFrame containing node information\n",
        "\n",
        "    Returns:\n",
        "        list: Instantiations for the parent node\n",
        "    \"\"\"\n",
        "    parent_row = df[df['Title'] == parent]\n",
        "    if parent_row.empty:\n",
        "        return [f\"{parent}_TRUE\", f\"{parent}_FALSE\"]\n",
        "\n",
        "    instantiations = parse_instantiations(parent_row.iloc[0]['instantiations'])\n",
        "    if not instantiations:\n",
        "        return [f\"{parent}_TRUE\", f\"{parent}_FALSE\"]\n",
        "\n",
        "    return instantiations\n",
        "\n",
        "def generate_instantiation_questions(title, instantiation, parents, df):\n",
        "    \"\"\"\n",
        "    Generate questions for a specific instantiation of a node.\n",
        "\n",
        "    Args:\n",
        "        title (str): The title of the node\n",
        "        instantiation (str): The specific instantiation (e.g., \"title_TRUE\")\n",
        "        parents (list): List of parent nodes\n",
        "        df (DataFrame): The full DataFrame for looking up parent instantiations\n",
        "\n",
        "    Returns:\n",
        "        dict: Dictionary mapping questions to estimate keys\n",
        "    \"\"\"\n",
        "    questions = {}\n",
        "\n",
        "    # Always generate a prior probability question, regardless of parents\n",
        "    prior_question = f\"What is the probability for {title}={instantiation}?\"\n",
        "    questions[prior_question] = 'prior'  # Question is the key, 'prior' is the value\n",
        "\n",
        "    # If no parents, return only the prior question\n",
        "    if not parents:\n",
        "        return questions\n",
        "\n",
        "    # For nodes with parents, generate conditional probability questions\n",
        "    # Get all combinations of parent instantiations\n",
        "    parent_instantiations = []\n",
        "    for parent in parents:\n",
        "        parent_insts = get_parent_instantiations(parent, df)\n",
        "        parent_instantiations.append([(parent, inst) for inst in parent_insts])\n",
        "\n",
        "    # Generate all combinations\n",
        "    all_combinations = list(itertools.product(*parent_instantiations))\n",
        "\n",
        "    # Create conditional probability questions for each combination\n",
        "    # and use questions as keys, estimate_i as values\n",
        "    for i, combination in enumerate(all_combinations):\n",
        "        condition_str = \", \".join([f\"{parent}={inst}\" for parent, inst in combination])\n",
        "        question = f\"What is the probability for {title}={instantiation} if {condition_str}?\"\n",
        "        questions[question] = f'estimate_{i + 1}'  # Question is the key, estimate_i is the value\n",
        "\n",
        "    return questions\n",
        "\n",
        "\n",
        "def generate_argdown_with_questions(argdown_csv_path, output_csv_path):\n",
        "    \"\"\"\n",
        "    Generate probability questions based on the ArgDown CSV file and save to a new CSV file.\n",
        "\n",
        "    Args:\n",
        "        argdown_csv_path (str): Path to the input ArgDown CSV file\n",
        "        output_csv_path (str): Path to save the output CSV file with questions\n",
        "\n",
        "    Returns:\n",
        "        DataFrame: Enhanced DataFrame with probability questions\n",
        "\n",
        "    Raises:\n",
        "        Exception: If CSV loading fails or required columns are missing\n",
        "    \"\"\"\n",
        "    print(f\"Loading ArgDown CSV from {argdown_csv_path}...\")\n",
        "\n",
        "    # Load the ArgDown CSV file\n",
        "    try:\n",
        "        df = pd.read_csv(argdown_csv_path)\n",
        "        print(f\"Successfully loaded CSV with {len(df)} rows.\")\n",
        "    except Exception as e:\n",
        "        raise Exception(f\"Error loading ArgDown CSV: {e}\")\n",
        "\n",
        "    # Validate required columns\n",
        "    required_columns = ['Title', 'Parents', 'instantiations']\n",
        "    missing_columns = [col for col in required_columns if col not in df.columns]\n",
        "    if missing_columns:\n",
        "        raise Exception(f\"Missing required columns: {', '.join(missing_columns)}\")\n",
        "\n",
        "    # Initialize columns for questions\n",
        "    df['Generate_Positive_Instantiation_Questions'] = None\n",
        "    df['Generate_Negative_Instantiation_Questions'] = None\n",
        "\n",
        "    print(\"Generating probability questions for each node...\")\n",
        "\n",
        "    # Process each row to generate questions\n",
        "    for idx, row in df.iterrows():\n",
        "        title = row['Title']\n",
        "        instantiations = parse_instantiations(row['instantiations'])\n",
        "        parents = parse_parents(row['Parents'])\n",
        "\n",
        "        if len(instantiations) < 2:\n",
        "            # Default instantiations if not provided\n",
        "            instantiations = [f\"{title}_TRUE\", f\"{title}_FALSE\"]\n",
        "\n",
        "        # Generate positive instantiation questions\n",
        "        positive_questions = generate_instantiation_questions(title, instantiations[0], parents, df)\n",
        "\n",
        "        # Generate negative instantiation questions\n",
        "        negative_questions = generate_instantiation_questions(title, instantiations[1], parents, df)\n",
        "\n",
        "        # Update the DataFrame\n",
        "        df.at[idx, 'Generate_Positive_Instantiation_Questions'] = json.dumps(positive_questions)\n",
        "        df.at[idx, 'Generate_Negative_Instantiation_Questions'] = json.dumps(negative_questions)\n",
        "\n",
        "    # Save the enhanced DataFrame\n",
        "    df.to_csv(output_csv_path, index=False)\n",
        "    print(f\"Generated questions saved to {output_csv_path}\")\n",
        "\n",
        "    return df\n",
        "\n",
        "# Example usage:\n",
        "df_with_questions = generate_argdown_with_questions(\"ArgDown.csv\", \"ArgDown_WithQuestions.csv\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iVh-85KaYlyk",
        "outputId": "f5fe89b0-6704-4f08-aeb8-70dba9ae03c2"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading ArgDown CSV from ArgDown.csv...\n",
            "Successfully loaded CSV with 23 rows.\n",
            "Generating probability questions for each node...\n",
            "Generated questions saved to ArgDown_WithQuestions.csv\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Load the data from the ArgDown_WithQuestions CSV file\n",
        "argdown_with_questions_df = pd.read_csv('ArgDown_WithQuestions.csv')\n",
        "\n",
        "# Display the DataFrame\n",
        "print(argdown_with_questions_df)\n",
        "argdown_with_questions_df\n"
      ],
      "metadata": {
        "id": "tjMf54VcPPD4",
        "collapsed": true,
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "28508e5d-c520-4cf5-cd82-b2c11e2692ee"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                          Title  \\\n",
            "0       Existential_Catastrophe   \n",
            "1          Human_Disempowerment   \n",
            "2        Scale_Of_Power_Seeking   \n",
            "3      Misaligned_Power_Seeking   \n",
            "4                   APS_Systems   \n",
            "5        Advanced_AI_Capability   \n",
            "6              Agentic_Planning   \n",
            "7           Strategic_Awareness   \n",
            "8       Difficulty_Of_Alignment   \n",
            "9      Instrumental_Convergence   \n",
            "10        Problems_With_Proxies   \n",
            "11         Problems_With_Search   \n",
            "12         Deployment_Decisions   \n",
            "13      Incentives_To_Build_APS   \n",
            "14            Usefulness_Of_APS   \n",
            "15         Competitive_Dynamics   \n",
            "16              Deception_By_AI   \n",
            "17          Corrective_Feedback   \n",
            "18                Warning_Shots   \n",
            "19  Rapid_Capability_Escalation   \n",
            "20    Barriers_To_Understanding   \n",
            "21         Adversarial_Dynamics   \n",
            "22              Stakes_Of_Error   \n",
            "\n",
            "                                          Description  line     line_numbers  \\\n",
            "0   The destruction of humanity's long-term potent...     0              [0]   \n",
            "1   Permanent and collective disempowerment of hum...     1              [1]   \n",
            "2   Power-seeking by AI systems scaling to the poi...     2              [2]   \n",
            "3   Deployed AI systems seeking power in unintende...     3  [3, 21, 23, 25]   \n",
            "4   AI systems with advanced capabilities, agentic...     4              [4]   \n",
            "5   AI systems that outperform humans on tasks tha...     5              [5]   \n",
            "6   AI systems making and executing plans based on...     6              [6]   \n",
            "7   AI systems with models accurately representing...     7              [7]   \n",
            "8   It is harder to build aligned systems than mis...     8              [8]   \n",
            "9   AI systems with misaligned objectives tend to ...     9              [9]   \n",
            "10  Optimizing for proxy objectives breaks correla...    10             [10]   \n",
            "11  Search processes can yield systems pursuing di...    11             [11]   \n",
            "12  Decisions to deploy potentially misaligned AI ...    12             [12]   \n",
            "13  Strong incentives to build and deploy APS syst...    13             [13]   \n",
            "14  APS systems are very useful for many valuable ...    14             [14]   \n",
            "15       Competitive pressures between AI developers.    15             [15]   \n",
            "16  AI systems deceiving humans about their true o...    16             [16]   \n",
            "17  Human society implementing corrections after o...    17             [17]   \n",
            "18  Observable failures in weaker systems before c...    18             [18]   \n",
            "19  AI capabilities escalating very rapidly, allow...    19             [19]   \n",
            "20  Difficulty in understanding the internal worki...    20             [20]   \n",
            "21  Potentially adversarial relationships between ...    22             [22]   \n",
            "22  The escalating impact of mistakes with power-s...    24             [24]   \n",
            "\n",
            "    indentation indentation_levels  \\\n",
            "0             0                [0]   \n",
            "1             0                [0]   \n",
            "2             4                [4]   \n",
            "3             8       [8, 0, 0, 0]   \n",
            "4            12               [12]   \n",
            "5            16               [16]   \n",
            "6            16               [16]   \n",
            "7            16               [16]   \n",
            "8            12               [12]   \n",
            "9            16               [16]   \n",
            "10           16               [16]   \n",
            "11           16               [16]   \n",
            "12           12               [12]   \n",
            "13           16               [16]   \n",
            "14           20               [20]   \n",
            "15           20               [20]   \n",
            "16           16               [16]   \n",
            "17            8                [8]   \n",
            "18           12               [12]   \n",
            "19           12               [12]   \n",
            "20            0                [0]   \n",
            "21            0                [0]   \n",
            "22            0                [0]   \n",
            "\n",
            "                                              Parents  \\\n",
            "0                                                  []   \n",
            "1                          ['Scale_Of_Power_Seeking']   \n",
            "2   ['Misaligned_Power_Seeking', 'Corrective_Feedb...   \n",
            "3   ['APS_Systems', 'Difficulty_Of_Alignment', 'De...   \n",
            "4   ['Advanced_AI_Capability', 'Agentic_Planning',...   \n",
            "5                                                  []   \n",
            "6                                                  []   \n",
            "7                                                  []   \n",
            "8   ['Instrumental_Convergence', 'Problems_With_Pr...   \n",
            "9                                                  []   \n",
            "10                                                 []   \n",
            "11                                                 []   \n",
            "12     ['Incentives_To_Build_APS', 'Deception_By_AI']   \n",
            "13      ['Usefulness_Of_APS', 'Competitive_Dynamics']   \n",
            "14                                                 []   \n",
            "15                                                 []   \n",
            "16                                                 []   \n",
            "17   ['Warning_Shots', 'Rapid_Capability_Escalation']   \n",
            "18                                                 []   \n",
            "19                                                 []   \n",
            "20                                                 []   \n",
            "21                                                 []   \n",
            "22                                                 []   \n",
            "\n",
            "                        Children  \\\n",
            "0                             []   \n",
            "1                             []   \n",
            "2       ['Human_Disempowerment']   \n",
            "3     ['Scale_Of_Power_Seeking']   \n",
            "4   ['Misaligned_Power_Seeking']   \n",
            "5                ['APS_Systems']   \n",
            "6                ['APS_Systems']   \n",
            "7                ['APS_Systems']   \n",
            "8   ['Misaligned_Power_Seeking']   \n",
            "9    ['Difficulty_Of_Alignment']   \n",
            "10   ['Difficulty_Of_Alignment']   \n",
            "11   ['Difficulty_Of_Alignment']   \n",
            "12  ['Misaligned_Power_Seeking']   \n",
            "13      ['Deployment_Decisions']   \n",
            "14   ['Incentives_To_Build_APS']   \n",
            "15   ['Incentives_To_Build_APS']   \n",
            "16      ['Deployment_Decisions']   \n",
            "17    ['Scale_Of_Power_Seeking']   \n",
            "18       ['Corrective_Feedback']   \n",
            "19       ['Corrective_Feedback']   \n",
            "20                            []   \n",
            "21                            []   \n",
            "22                            []   \n",
            "\n",
            "                                       instantiations  No_Parent  No_Children  \\\n",
            "0   ['existential_catastrophe_TRUE', 'existential_...       True         True   \n",
            "1   ['human_disempowerment_TRUE', 'human_disempowe...      False         True   \n",
            "2   ['scale_of_power_seeking_TRUE', 'scale_of_powe...      False        False   \n",
            "3   ['misaligned_power_seeking_TRUE', 'misaligned_...      False        False   \n",
            "4           ['aps_systems_TRUE', 'aps_systems_FALSE']      False        False   \n",
            "5   ['advanced_ai_capability_TRUE', 'advanced_ai_c...       True        False   \n",
            "6   ['agentic_planning_TRUE', 'agentic_planning_FA...       True        False   \n",
            "7   ['strategic_awareness_TRUE', 'strategic_awaren...       True        False   \n",
            "8   ['difficulty_of_alignment_TRUE', 'difficulty_o...      False        False   \n",
            "9   ['instrumental_convergence_TRUE', 'instrumenta...       True        False   \n",
            "10  ['problems_with_proxies_TRUE', 'problems_with_...       True        False   \n",
            "11  ['problems_with_search_TRUE', 'problems_with_s...       True        False   \n",
            "12  ['deployment_decisions_DEPLOY', 'deployment_de...      False        False   \n",
            "13  ['incentives_to_build_aps_STRONG', 'incentives...      False        False   \n",
            "14  ['usefulness_of_aps_HIGH', 'usefulness_of_aps_...       True        False   \n",
            "15  ['competitive_dynamics_STRONG', 'competitive_d...       True        False   \n",
            "16  ['deception_by_ai_TRUE', 'deception_by_ai_FALSE']       True        False   \n",
            "17  ['corrective_feedback_EFFECTIVE', 'corrective_...      False        False   \n",
            "18  ['warning_shots_OBSERVED', 'warning_shots_UNOB...       True        False   \n",
            "19  ['rapid_capability_escalation_TRUE', 'rapid_ca...       True        False   \n",
            "20  ['barriers_to_understanding_HIGH', 'barriers_t...       True         True   \n",
            "21  ['adversarial_dynamics_TRUE', 'adversarial_dyn...       True         True   \n",
            "22    ['stakes_of_error_HIGH', 'stakes_of_error_LOW']       True         True   \n",
            "\n",
            "                                parent_instantiations  \\\n",
            "0                                                  []   \n",
            "1   [['scale_of_power_seeking_TRUE', 'scale_of_pow...   \n",
            "2   [['misaligned_power_seeking_TRUE', 'misaligned...   \n",
            "3   [['aps_systems_TRUE', 'aps_systems_FALSE'], ['...   \n",
            "4   [['advanced_ai_capability_TRUE', 'advanced_ai_...   \n",
            "5                                                  []   \n",
            "6                                                  []   \n",
            "7                                                  []   \n",
            "8   [['instrumental_convergence_TRUE', 'instrument...   \n",
            "9                                                  []   \n",
            "10                                                 []   \n",
            "11                                                 []   \n",
            "12  [['incentives_to_build_aps_STRONG', 'incentive...   \n",
            "13  [['usefulness_of_aps_HIGH', 'usefulness_of_aps...   \n",
            "14                                                 []   \n",
            "15                                                 []   \n",
            "16                                                 []   \n",
            "17  [['warning_shots_OBSERVED', 'warning_shots_UNO...   \n",
            "18                                                 []   \n",
            "19                                                 []   \n",
            "20                                                 []   \n",
            "21                                                 []   \n",
            "22                                                 []   \n",
            "\n",
            "            Generate_Positive_Instantiation_Questions  \\\n",
            "0   {\"What is the probability for Existential_Cata...   \n",
            "1   {\"What is the probability for Human_Disempower...   \n",
            "2   {\"What is the probability for Scale_Of_Power_S...   \n",
            "3   {\"What is the probability for Misaligned_Power...   \n",
            "4   {\"What is the probability for APS_Systems=aps_...   \n",
            "5   {\"What is the probability for Advanced_AI_Capa...   \n",
            "6   {\"What is the probability for Agentic_Planning...   \n",
            "7   {\"What is the probability for Strategic_Awaren...   \n",
            "8   {\"What is the probability for Difficulty_Of_Al...   \n",
            "9   {\"What is the probability for Instrumental_Con...   \n",
            "10  {\"What is the probability for Problems_With_Pr...   \n",
            "11  {\"What is the probability for Problems_With_Se...   \n",
            "12  {\"What is the probability for Deployment_Decis...   \n",
            "13  {\"What is the probability for Incentives_To_Bu...   \n",
            "14  {\"What is the probability for Usefulness_Of_AP...   \n",
            "15  {\"What is the probability for Competitive_Dyna...   \n",
            "16  {\"What is the probability for Deception_By_AI=...   \n",
            "17  {\"What is the probability for Corrective_Feedb...   \n",
            "18  {\"What is the probability for Warning_Shots=wa...   \n",
            "19  {\"What is the probability for Rapid_Capability...   \n",
            "20  {\"What is the probability for Barriers_To_Unde...   \n",
            "21  {\"What is the probability for Adversarial_Dyna...   \n",
            "22  {\"What is the probability for Stakes_Of_Error=...   \n",
            "\n",
            "            Generate_Negative_Instantiation_Questions  \n",
            "0   {\"What is the probability for Existential_Cata...  \n",
            "1   {\"What is the probability for Human_Disempower...  \n",
            "2   {\"What is the probability for Scale_Of_Power_S...  \n",
            "3   {\"What is the probability for Misaligned_Power...  \n",
            "4   {\"What is the probability for APS_Systems=aps_...  \n",
            "5   {\"What is the probability for Advanced_AI_Capa...  \n",
            "6   {\"What is the probability for Agentic_Planning...  \n",
            "7   {\"What is the probability for Strategic_Awaren...  \n",
            "8   {\"What is the probability for Difficulty_Of_Al...  \n",
            "9   {\"What is the probability for Instrumental_Con...  \n",
            "10  {\"What is the probability for Problems_With_Pr...  \n",
            "11  {\"What is the probability for Problems_With_Se...  \n",
            "12  {\"What is the probability for Deployment_Decis...  \n",
            "13  {\"What is the probability for Incentives_To_Bu...  \n",
            "14  {\"What is the probability for Usefulness_Of_AP...  \n",
            "15  {\"What is the probability for Competitive_Dyna...  \n",
            "16  {\"What is the probability for Deception_By_AI=...  \n",
            "17  {\"What is the probability for Corrective_Feedb...  \n",
            "18  {\"What is the probability for Warning_Shots=wa...  \n",
            "19  {\"What is the probability for Rapid_Capability...  \n",
            "20  {\"What is the probability for Barriers_To_Unde...  \n",
            "21  {\"What is the probability for Adversarial_Dyna...  \n",
            "22  {\"What is the probability for Stakes_Of_Error=...  \n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                          Title  \\\n",
              "0       Existential_Catastrophe   \n",
              "1          Human_Disempowerment   \n",
              "2        Scale_Of_Power_Seeking   \n",
              "3      Misaligned_Power_Seeking   \n",
              "4                   APS_Systems   \n",
              "5        Advanced_AI_Capability   \n",
              "6              Agentic_Planning   \n",
              "7           Strategic_Awareness   \n",
              "8       Difficulty_Of_Alignment   \n",
              "9      Instrumental_Convergence   \n",
              "10        Problems_With_Proxies   \n",
              "11         Problems_With_Search   \n",
              "12         Deployment_Decisions   \n",
              "13      Incentives_To_Build_APS   \n",
              "14            Usefulness_Of_APS   \n",
              "15         Competitive_Dynamics   \n",
              "16              Deception_By_AI   \n",
              "17          Corrective_Feedback   \n",
              "18                Warning_Shots   \n",
              "19  Rapid_Capability_Escalation   \n",
              "20    Barriers_To_Understanding   \n",
              "21         Adversarial_Dynamics   \n",
              "22              Stakes_Of_Error   \n",
              "\n",
              "                                          Description  line     line_numbers  \\\n",
              "0   The destruction of humanity's long-term potent...     0              [0]   \n",
              "1   Permanent and collective disempowerment of hum...     1              [1]   \n",
              "2   Power-seeking by AI systems scaling to the poi...     2              [2]   \n",
              "3   Deployed AI systems seeking power in unintende...     3  [3, 21, 23, 25]   \n",
              "4   AI systems with advanced capabilities, agentic...     4              [4]   \n",
              "5   AI systems that outperform humans on tasks tha...     5              [5]   \n",
              "6   AI systems making and executing plans based on...     6              [6]   \n",
              "7   AI systems with models accurately representing...     7              [7]   \n",
              "8   It is harder to build aligned systems than mis...     8              [8]   \n",
              "9   AI systems with misaligned objectives tend to ...     9              [9]   \n",
              "10  Optimizing for proxy objectives breaks correla...    10             [10]   \n",
              "11  Search processes can yield systems pursuing di...    11             [11]   \n",
              "12  Decisions to deploy potentially misaligned AI ...    12             [12]   \n",
              "13  Strong incentives to build and deploy APS syst...    13             [13]   \n",
              "14  APS systems are very useful for many valuable ...    14             [14]   \n",
              "15       Competitive pressures between AI developers.    15             [15]   \n",
              "16  AI systems deceiving humans about their true o...    16             [16]   \n",
              "17  Human society implementing corrections after o...    17             [17]   \n",
              "18  Observable failures in weaker systems before c...    18             [18]   \n",
              "19  AI capabilities escalating very rapidly, allow...    19             [19]   \n",
              "20  Difficulty in understanding the internal worki...    20             [20]   \n",
              "21  Potentially adversarial relationships between ...    22             [22]   \n",
              "22  The escalating impact of mistakes with power-s...    24             [24]   \n",
              "\n",
              "    indentation indentation_levels  \\\n",
              "0             0                [0]   \n",
              "1             0                [0]   \n",
              "2             4                [4]   \n",
              "3             8       [8, 0, 0, 0]   \n",
              "4            12               [12]   \n",
              "5            16               [16]   \n",
              "6            16               [16]   \n",
              "7            16               [16]   \n",
              "8            12               [12]   \n",
              "9            16               [16]   \n",
              "10           16               [16]   \n",
              "11           16               [16]   \n",
              "12           12               [12]   \n",
              "13           16               [16]   \n",
              "14           20               [20]   \n",
              "15           20               [20]   \n",
              "16           16               [16]   \n",
              "17            8                [8]   \n",
              "18           12               [12]   \n",
              "19           12               [12]   \n",
              "20            0                [0]   \n",
              "21            0                [0]   \n",
              "22            0                [0]   \n",
              "\n",
              "                                              Parents  \\\n",
              "0                                                  []   \n",
              "1                          ['Scale_Of_Power_Seeking']   \n",
              "2   ['Misaligned_Power_Seeking', 'Corrective_Feedb...   \n",
              "3   ['APS_Systems', 'Difficulty_Of_Alignment', 'De...   \n",
              "4   ['Advanced_AI_Capability', 'Agentic_Planning',...   \n",
              "5                                                  []   \n",
              "6                                                  []   \n",
              "7                                                  []   \n",
              "8   ['Instrumental_Convergence', 'Problems_With_Pr...   \n",
              "9                                                  []   \n",
              "10                                                 []   \n",
              "11                                                 []   \n",
              "12     ['Incentives_To_Build_APS', 'Deception_By_AI']   \n",
              "13      ['Usefulness_Of_APS', 'Competitive_Dynamics']   \n",
              "14                                                 []   \n",
              "15                                                 []   \n",
              "16                                                 []   \n",
              "17   ['Warning_Shots', 'Rapid_Capability_Escalation']   \n",
              "18                                                 []   \n",
              "19                                                 []   \n",
              "20                                                 []   \n",
              "21                                                 []   \n",
              "22                                                 []   \n",
              "\n",
              "                        Children  \\\n",
              "0                             []   \n",
              "1                             []   \n",
              "2       ['Human_Disempowerment']   \n",
              "3     ['Scale_Of_Power_Seeking']   \n",
              "4   ['Misaligned_Power_Seeking']   \n",
              "5                ['APS_Systems']   \n",
              "6                ['APS_Systems']   \n",
              "7                ['APS_Systems']   \n",
              "8   ['Misaligned_Power_Seeking']   \n",
              "9    ['Difficulty_Of_Alignment']   \n",
              "10   ['Difficulty_Of_Alignment']   \n",
              "11   ['Difficulty_Of_Alignment']   \n",
              "12  ['Misaligned_Power_Seeking']   \n",
              "13      ['Deployment_Decisions']   \n",
              "14   ['Incentives_To_Build_APS']   \n",
              "15   ['Incentives_To_Build_APS']   \n",
              "16      ['Deployment_Decisions']   \n",
              "17    ['Scale_Of_Power_Seeking']   \n",
              "18       ['Corrective_Feedback']   \n",
              "19       ['Corrective_Feedback']   \n",
              "20                            []   \n",
              "21                            []   \n",
              "22                            []   \n",
              "\n",
              "                                       instantiations  No_Parent  No_Children  \\\n",
              "0   ['existential_catastrophe_TRUE', 'existential_...       True         True   \n",
              "1   ['human_disempowerment_TRUE', 'human_disempowe...      False         True   \n",
              "2   ['scale_of_power_seeking_TRUE', 'scale_of_powe...      False        False   \n",
              "3   ['misaligned_power_seeking_TRUE', 'misaligned_...      False        False   \n",
              "4           ['aps_systems_TRUE', 'aps_systems_FALSE']      False        False   \n",
              "5   ['advanced_ai_capability_TRUE', 'advanced_ai_c...       True        False   \n",
              "6   ['agentic_planning_TRUE', 'agentic_planning_FA...       True        False   \n",
              "7   ['strategic_awareness_TRUE', 'strategic_awaren...       True        False   \n",
              "8   ['difficulty_of_alignment_TRUE', 'difficulty_o...      False        False   \n",
              "9   ['instrumental_convergence_TRUE', 'instrumenta...       True        False   \n",
              "10  ['problems_with_proxies_TRUE', 'problems_with_...       True        False   \n",
              "11  ['problems_with_search_TRUE', 'problems_with_s...       True        False   \n",
              "12  ['deployment_decisions_DEPLOY', 'deployment_de...      False        False   \n",
              "13  ['incentives_to_build_aps_STRONG', 'incentives...      False        False   \n",
              "14  ['usefulness_of_aps_HIGH', 'usefulness_of_aps_...       True        False   \n",
              "15  ['competitive_dynamics_STRONG', 'competitive_d...       True        False   \n",
              "16  ['deception_by_ai_TRUE', 'deception_by_ai_FALSE']       True        False   \n",
              "17  ['corrective_feedback_EFFECTIVE', 'corrective_...      False        False   \n",
              "18  ['warning_shots_OBSERVED', 'warning_shots_UNOB...       True        False   \n",
              "19  ['rapid_capability_escalation_TRUE', 'rapid_ca...       True        False   \n",
              "20  ['barriers_to_understanding_HIGH', 'barriers_t...       True         True   \n",
              "21  ['adversarial_dynamics_TRUE', 'adversarial_dyn...       True         True   \n",
              "22    ['stakes_of_error_HIGH', 'stakes_of_error_LOW']       True         True   \n",
              "\n",
              "                                parent_instantiations  \\\n",
              "0                                                  []   \n",
              "1   [['scale_of_power_seeking_TRUE', 'scale_of_pow...   \n",
              "2   [['misaligned_power_seeking_TRUE', 'misaligned...   \n",
              "3   [['aps_systems_TRUE', 'aps_systems_FALSE'], ['...   \n",
              "4   [['advanced_ai_capability_TRUE', 'advanced_ai_...   \n",
              "5                                                  []   \n",
              "6                                                  []   \n",
              "7                                                  []   \n",
              "8   [['instrumental_convergence_TRUE', 'instrument...   \n",
              "9                                                  []   \n",
              "10                                                 []   \n",
              "11                                                 []   \n",
              "12  [['incentives_to_build_aps_STRONG', 'incentive...   \n",
              "13  [['usefulness_of_aps_HIGH', 'usefulness_of_aps...   \n",
              "14                                                 []   \n",
              "15                                                 []   \n",
              "16                                                 []   \n",
              "17  [['warning_shots_OBSERVED', 'warning_shots_UNO...   \n",
              "18                                                 []   \n",
              "19                                                 []   \n",
              "20                                                 []   \n",
              "21                                                 []   \n",
              "22                                                 []   \n",
              "\n",
              "            Generate_Positive_Instantiation_Questions  \\\n",
              "0   {\"What is the probability for Existential_Cata...   \n",
              "1   {\"What is the probability for Human_Disempower...   \n",
              "2   {\"What is the probability for Scale_Of_Power_S...   \n",
              "3   {\"What is the probability for Misaligned_Power...   \n",
              "4   {\"What is the probability for APS_Systems=aps_...   \n",
              "5   {\"What is the probability for Advanced_AI_Capa...   \n",
              "6   {\"What is the probability for Agentic_Planning...   \n",
              "7   {\"What is the probability for Strategic_Awaren...   \n",
              "8   {\"What is the probability for Difficulty_Of_Al...   \n",
              "9   {\"What is the probability for Instrumental_Con...   \n",
              "10  {\"What is the probability for Problems_With_Pr...   \n",
              "11  {\"What is the probability for Problems_With_Se...   \n",
              "12  {\"What is the probability for Deployment_Decis...   \n",
              "13  {\"What is the probability for Incentives_To_Bu...   \n",
              "14  {\"What is the probability for Usefulness_Of_AP...   \n",
              "15  {\"What is the probability for Competitive_Dyna...   \n",
              "16  {\"What is the probability for Deception_By_AI=...   \n",
              "17  {\"What is the probability for Corrective_Feedb...   \n",
              "18  {\"What is the probability for Warning_Shots=wa...   \n",
              "19  {\"What is the probability for Rapid_Capability...   \n",
              "20  {\"What is the probability for Barriers_To_Unde...   \n",
              "21  {\"What is the probability for Adversarial_Dyna...   \n",
              "22  {\"What is the probability for Stakes_Of_Error=...   \n",
              "\n",
              "            Generate_Negative_Instantiation_Questions  \n",
              "0   {\"What is the probability for Existential_Cata...  \n",
              "1   {\"What is the probability for Human_Disempower...  \n",
              "2   {\"What is the probability for Scale_Of_Power_S...  \n",
              "3   {\"What is the probability for Misaligned_Power...  \n",
              "4   {\"What is the probability for APS_Systems=aps_...  \n",
              "5   {\"What is the probability for Advanced_AI_Capa...  \n",
              "6   {\"What is the probability for Agentic_Planning...  \n",
              "7   {\"What is the probability for Strategic_Awaren...  \n",
              "8   {\"What is the probability for Difficulty_Of_Al...  \n",
              "9   {\"What is the probability for Instrumental_Con...  \n",
              "10  {\"What is the probability for Problems_With_Pr...  \n",
              "11  {\"What is the probability for Problems_With_Se...  \n",
              "12  {\"What is the probability for Deployment_Decis...  \n",
              "13  {\"What is the probability for Incentives_To_Bu...  \n",
              "14  {\"What is the probability for Usefulness_Of_AP...  \n",
              "15  {\"What is the probability for Competitive_Dyna...  \n",
              "16  {\"What is the probability for Deception_By_AI=...  \n",
              "17  {\"What is the probability for Corrective_Feedb...  \n",
              "18  {\"What is the probability for Warning_Shots=wa...  \n",
              "19  {\"What is the probability for Rapid_Capability...  \n",
              "20  {\"What is the probability for Barriers_To_Unde...  \n",
              "21  {\"What is the probability for Adversarial_Dyna...  \n",
              "22  {\"What is the probability for Stakes_Of_Error=...  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-65ed4a0e-7212-4526-9543-86ffd67f7d8e\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Title</th>\n",
              "      <th>Description</th>\n",
              "      <th>line</th>\n",
              "      <th>line_numbers</th>\n",
              "      <th>indentation</th>\n",
              "      <th>indentation_levels</th>\n",
              "      <th>Parents</th>\n",
              "      <th>Children</th>\n",
              "      <th>instantiations</th>\n",
              "      <th>No_Parent</th>\n",
              "      <th>No_Children</th>\n",
              "      <th>parent_instantiations</th>\n",
              "      <th>Generate_Positive_Instantiation_Questions</th>\n",
              "      <th>Generate_Negative_Instantiation_Questions</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Existential_Catastrophe</td>\n",
              "      <td>The destruction of humanity's long-term potent...</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['existential_catastrophe_TRUE', 'existential_...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Existential_Cata...</td>\n",
              "      <td>{\"What is the probability for Existential_Cata...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Human_Disempowerment</td>\n",
              "      <td>Permanent and collective disempowerment of hum...</td>\n",
              "      <td>1</td>\n",
              "      <td>[1]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>['Scale_Of_Power_Seeking']</td>\n",
              "      <td>[]</td>\n",
              "      <td>['human_disempowerment_TRUE', 'human_disempowe...</td>\n",
              "      <td>False</td>\n",
              "      <td>True</td>\n",
              "      <td>[['scale_of_power_seeking_TRUE', 'scale_of_pow...</td>\n",
              "      <td>{\"What is the probability for Human_Disempower...</td>\n",
              "      <td>{\"What is the probability for Human_Disempower...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Scale_Of_Power_Seeking</td>\n",
              "      <td>Power-seeking by AI systems scaling to the poi...</td>\n",
              "      <td>2</td>\n",
              "      <td>[2]</td>\n",
              "      <td>4</td>\n",
              "      <td>[4]</td>\n",
              "      <td>['Misaligned_Power_Seeking', 'Corrective_Feedb...</td>\n",
              "      <td>['Human_Disempowerment']</td>\n",
              "      <td>['scale_of_power_seeking_TRUE', 'scale_of_powe...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['misaligned_power_seeking_TRUE', 'misaligned...</td>\n",
              "      <td>{\"What is the probability for Scale_Of_Power_S...</td>\n",
              "      <td>{\"What is the probability for Scale_Of_Power_S...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Misaligned_Power_Seeking</td>\n",
              "      <td>Deployed AI systems seeking power in unintende...</td>\n",
              "      <td>3</td>\n",
              "      <td>[3, 21, 23, 25]</td>\n",
              "      <td>8</td>\n",
              "      <td>[8, 0, 0, 0]</td>\n",
              "      <td>['APS_Systems', 'Difficulty_Of_Alignment', 'De...</td>\n",
              "      <td>['Scale_Of_Power_Seeking']</td>\n",
              "      <td>['misaligned_power_seeking_TRUE', 'misaligned_...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['aps_systems_TRUE', 'aps_systems_FALSE'], ['...</td>\n",
              "      <td>{\"What is the probability for Misaligned_Power...</td>\n",
              "      <td>{\"What is the probability for Misaligned_Power...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>APS_Systems</td>\n",
              "      <td>AI systems with advanced capabilities, agentic...</td>\n",
              "      <td>4</td>\n",
              "      <td>[4]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>['Advanced_AI_Capability', 'Agentic_Planning',...</td>\n",
              "      <td>['Misaligned_Power_Seeking']</td>\n",
              "      <td>['aps_systems_TRUE', 'aps_systems_FALSE']</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['advanced_ai_capability_TRUE', 'advanced_ai_...</td>\n",
              "      <td>{\"What is the probability for APS_Systems=aps_...</td>\n",
              "      <td>{\"What is the probability for APS_Systems=aps_...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>Advanced_AI_Capability</td>\n",
              "      <td>AI systems that outperform humans on tasks tha...</td>\n",
              "      <td>5</td>\n",
              "      <td>[5]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['APS_Systems']</td>\n",
              "      <td>['advanced_ai_capability_TRUE', 'advanced_ai_c...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Advanced_AI_Capa...</td>\n",
              "      <td>{\"What is the probability for Advanced_AI_Capa...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>Agentic_Planning</td>\n",
              "      <td>AI systems making and executing plans based on...</td>\n",
              "      <td>6</td>\n",
              "      <td>[6]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['APS_Systems']</td>\n",
              "      <td>['agentic_planning_TRUE', 'agentic_planning_FA...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Agentic_Planning...</td>\n",
              "      <td>{\"What is the probability for Agentic_Planning...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>Strategic_Awareness</td>\n",
              "      <td>AI systems with models accurately representing...</td>\n",
              "      <td>7</td>\n",
              "      <td>[7]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['APS_Systems']</td>\n",
              "      <td>['strategic_awareness_TRUE', 'strategic_awaren...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Strategic_Awaren...</td>\n",
              "      <td>{\"What is the probability for Strategic_Awaren...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>Difficulty_Of_Alignment</td>\n",
              "      <td>It is harder to build aligned systems than mis...</td>\n",
              "      <td>8</td>\n",
              "      <td>[8]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>['Instrumental_Convergence', 'Problems_With_Pr...</td>\n",
              "      <td>['Misaligned_Power_Seeking']</td>\n",
              "      <td>['difficulty_of_alignment_TRUE', 'difficulty_o...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['instrumental_convergence_TRUE', 'instrument...</td>\n",
              "      <td>{\"What is the probability for Difficulty_Of_Al...</td>\n",
              "      <td>{\"What is the probability for Difficulty_Of_Al...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>Instrumental_Convergence</td>\n",
              "      <td>AI systems with misaligned objectives tend to ...</td>\n",
              "      <td>9</td>\n",
              "      <td>[9]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Difficulty_Of_Alignment']</td>\n",
              "      <td>['instrumental_convergence_TRUE', 'instrumenta...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Instrumental_Con...</td>\n",
              "      <td>{\"What is the probability for Instrumental_Con...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>Problems_With_Proxies</td>\n",
              "      <td>Optimizing for proxy objectives breaks correla...</td>\n",
              "      <td>10</td>\n",
              "      <td>[10]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Difficulty_Of_Alignment']</td>\n",
              "      <td>['problems_with_proxies_TRUE', 'problems_with_...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Problems_With_Pr...</td>\n",
              "      <td>{\"What is the probability for Problems_With_Pr...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>Problems_With_Search</td>\n",
              "      <td>Search processes can yield systems pursuing di...</td>\n",
              "      <td>11</td>\n",
              "      <td>[11]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Difficulty_Of_Alignment']</td>\n",
              "      <td>['problems_with_search_TRUE', 'problems_with_s...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Problems_With_Se...</td>\n",
              "      <td>{\"What is the probability for Problems_With_Se...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>Deployment_Decisions</td>\n",
              "      <td>Decisions to deploy potentially misaligned AI ...</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>['Incentives_To_Build_APS', 'Deception_By_AI']</td>\n",
              "      <td>['Misaligned_Power_Seeking']</td>\n",
              "      <td>['deployment_decisions_DEPLOY', 'deployment_de...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['incentives_to_build_aps_STRONG', 'incentive...</td>\n",
              "      <td>{\"What is the probability for Deployment_Decis...</td>\n",
              "      <td>{\"What is the probability for Deployment_Decis...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>Incentives_To_Build_APS</td>\n",
              "      <td>Strong incentives to build and deploy APS syst...</td>\n",
              "      <td>13</td>\n",
              "      <td>[13]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>['Usefulness_Of_APS', 'Competitive_Dynamics']</td>\n",
              "      <td>['Deployment_Decisions']</td>\n",
              "      <td>['incentives_to_build_aps_STRONG', 'incentives...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['usefulness_of_aps_HIGH', 'usefulness_of_aps...</td>\n",
              "      <td>{\"What is the probability for Incentives_To_Bu...</td>\n",
              "      <td>{\"What is the probability for Incentives_To_Bu...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>Usefulness_Of_APS</td>\n",
              "      <td>APS systems are very useful for many valuable ...</td>\n",
              "      <td>14</td>\n",
              "      <td>[14]</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Incentives_To_Build_APS']</td>\n",
              "      <td>['usefulness_of_aps_HIGH', 'usefulness_of_aps_...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Usefulness_Of_AP...</td>\n",
              "      <td>{\"What is the probability for Usefulness_Of_AP...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>Competitive_Dynamics</td>\n",
              "      <td>Competitive pressures between AI developers.</td>\n",
              "      <td>15</td>\n",
              "      <td>[15]</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Incentives_To_Build_APS']</td>\n",
              "      <td>['competitive_dynamics_STRONG', 'competitive_d...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Competitive_Dyna...</td>\n",
              "      <td>{\"What is the probability for Competitive_Dyna...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>Deception_By_AI</td>\n",
              "      <td>AI systems deceiving humans about their true o...</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Deployment_Decisions']</td>\n",
              "      <td>['deception_by_ai_TRUE', 'deception_by_ai_FALSE']</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Deception_By_AI=...</td>\n",
              "      <td>{\"What is the probability for Deception_By_AI=...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>Corrective_Feedback</td>\n",
              "      <td>Human society implementing corrections after o...</td>\n",
              "      <td>17</td>\n",
              "      <td>[17]</td>\n",
              "      <td>8</td>\n",
              "      <td>[8]</td>\n",
              "      <td>['Warning_Shots', 'Rapid_Capability_Escalation']</td>\n",
              "      <td>['Scale_Of_Power_Seeking']</td>\n",
              "      <td>['corrective_feedback_EFFECTIVE', 'corrective_...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[['warning_shots_OBSERVED', 'warning_shots_UNO...</td>\n",
              "      <td>{\"What is the probability for Corrective_Feedb...</td>\n",
              "      <td>{\"What is the probability for Corrective_Feedb...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>Warning_Shots</td>\n",
              "      <td>Observable failures in weaker systems before c...</td>\n",
              "      <td>18</td>\n",
              "      <td>[18]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Corrective_Feedback']</td>\n",
              "      <td>['warning_shots_OBSERVED', 'warning_shots_UNOB...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Warning_Shots=wa...</td>\n",
              "      <td>{\"What is the probability for Warning_Shots=wa...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>Rapid_Capability_Escalation</td>\n",
              "      <td>AI capabilities escalating very rapidly, allow...</td>\n",
              "      <td>19</td>\n",
              "      <td>[19]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['Corrective_Feedback']</td>\n",
              "      <td>['rapid_capability_escalation_TRUE', 'rapid_ca...</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Rapid_Capability...</td>\n",
              "      <td>{\"What is the probability for Rapid_Capability...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>20</th>\n",
              "      <td>Barriers_To_Understanding</td>\n",
              "      <td>Difficulty in understanding the internal worki...</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['barriers_to_understanding_HIGH', 'barriers_t...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Barriers_To_Unde...</td>\n",
              "      <td>{\"What is the probability for Barriers_To_Unde...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>Adversarial_Dynamics</td>\n",
              "      <td>Potentially adversarial relationships between ...</td>\n",
              "      <td>22</td>\n",
              "      <td>[22]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['adversarial_dynamics_TRUE', 'adversarial_dyn...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Adversarial_Dyna...</td>\n",
              "      <td>{\"What is the probability for Adversarial_Dyna...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>22</th>\n",
              "      <td>Stakes_Of_Error</td>\n",
              "      <td>The escalating impact of mistakes with power-s...</td>\n",
              "      <td>24</td>\n",
              "      <td>[24]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>['stakes_of_error_HIGH', 'stakes_of_error_LOW']</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "      <td>{\"What is the probability for Stakes_Of_Error=...</td>\n",
              "      <td>{\"What is the probability for Stakes_Of_Error=...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-65ed4a0e-7212-4526-9543-86ffd67f7d8e')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-65ed4a0e-7212-4526-9543-86ffd67f7d8e button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-65ed4a0e-7212-4526-9543-86ffd67f7d8e');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    <div id=\"df-240e59fc-dcad-4366-9b42-7d73d6fca855\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-240e59fc-dcad-4366-9b42-7d73d6fca855')\"\n",
              "                title=\"Suggest charts\"\n",
              "                style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "      <script>\n",
              "        async function quickchart(key) {\n",
              "          const quickchartButtonEl =\n",
              "            document.querySelector('#' + key + ' button');\n",
              "          quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "          quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "          try {\n",
              "            const charts = await google.colab.kernel.invokeFunction(\n",
              "                'suggestCharts', [key], {});\n",
              "          } catch (error) {\n",
              "            console.error('Error during call to suggestCharts:', error);\n",
              "          }\n",
              "          quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "          quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "        }\n",
              "        (() => {\n",
              "          let quickchartButtonEl =\n",
              "            document.querySelector('#df-240e59fc-dcad-4366-9b42-7d73d6fca855 button');\n",
              "          quickchartButtonEl.style.display =\n",
              "            google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "        })();\n",
              "      </script>\n",
              "    </div>\n",
              "\n",
              "  <div id=\"id_ce4bb974-5cb1-4055-bf2b-eaaea6c742be\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('argdown_with_questions_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_ce4bb974-5cb1-4055-bf2b-eaaea6c742be button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('argdown_with_questions_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "argdown_with_questions_df",
              "summary": "{\n  \"name\": \"argdown_with_questions_df\",\n  \"rows\": 23,\n  \"fields\": [\n    {\n      \"column\": \"Title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"Competitive_Dynamics\",\n          \"Instrumental_Convergence\",\n          \"Existential_Catastrophe\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Description\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"Competitive pressures between AI developers.\",\n          \"AI systems with misaligned objectives tend to seek power as an instrumental goal.\",\n          \"The destruction of humanity's long-term potential due to AI systems we've lost control over.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"line\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7,\n        \"min\": 0,\n        \"max\": 24,\n        \"num_unique_values\": 23,\n        \"samples\": [\n          15,\n          9,\n          0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"line_numbers\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"[15]\",\n          \"[9]\",\n          \"[0]\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"indentation\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 6,\n        \"min\": 0,\n        \"max\": 20,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0,\n          4,\n          20\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"indentation_levels\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 7,\n        \"samples\": [\n          \"[0]\",\n          \"[4]\",\n          \"[20]\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Parents\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 9,\n        \"samples\": [\n          \"['Usefulness_Of_APS', 'Competitive_Dynamics']\",\n          \"['Scale_Of_Power_Seeking']\",\n          \"['Instrumental_Convergence', 'Problems_With_Proxies', 'Problems_With_Search']\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Children\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 9,\n        \"samples\": [\n          \"['Incentives_To_Build_APS']\",\n          \"['Human_Disempowerment']\",\n          \"['Difficulty_Of_Alignment']\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"instantiations\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"['competitive_dynamics_STRONG', 'competitive_dynamics_WEAK']\",\n          \"['instrumental_convergence_TRUE', 'instrumental_convergence_FALSE']\",\n          \"['existential_catastrophe_TRUE', 'existential_catastrophe_FALSE']\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"No_Parent\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"No_Children\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"parent_instantiations\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 9,\n        \"samples\": [\n          \"[['usefulness_of_aps_HIGH', 'usefulness_of_aps_LOW'], ['competitive_dynamics_STRONG', 'competitive_dynamics_WEAK']]\",\n          \"[['scale_of_power_seeking_TRUE', 'scale_of_power_seeking_FALSE']]\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Generate_Positive_Instantiation_Questions\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"{\\\"What is the probability for Competitive_Dynamics=competitive_dynamics_STRONG?\\\": \\\"prior\\\"}\",\n          \"{\\\"What is the probability for Instrumental_Convergence=instrumental_convergence_TRUE?\\\": \\\"prior\\\"}\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Generate_Negative_Instantiation_Questions\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"{\\\"What is the probability for Competitive_Dynamics=competitive_dynamics_WEAK?\\\": \\\"prior\\\"}\",\n          \"{\\\"What is the probability for Instrumental_Convergence=instrumental_convergence_FALSE?\\\": \\\"prior\\\"}\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 28
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.2 'ArgDown_WithQuestions.csv' to 'BayesDownQuestions.md'"
      ],
      "metadata": {
        "id": "-q9UOQ8yaBZn"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "2.2 Save BayesDown Extraction Questions as 'BayesDownQuestions.md'"
      ],
      "metadata": {
        "id": "AI62qUtQYlIp"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 2.2 --- BayesDown Questions Generation ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Transforms the ArgDown with questions into a BayesDown template with placeholders.\n",
        "\n",
        "This function creates a BayesDown representation with probability placeholders based on the questions generated in the previous step. It:\n",
        "\n",
        "1. Loads the CSV file with probability questions\n",
        "2. Constructs a directed graph to represent the causal structure\n",
        "3. Processes each node to create BayesDown syntax with probability placeholders\n",
        "4. Optionally includes comments with the specific questions to be answered\n",
        "5. Saves the result as a markdown file for the next stage of the pipeline\n",
        "\n",
        "The output is a BayesDown template that can be used in the probability extraction phase, where the placeholders will be replaced with actual probability values.\n",
        "\n",
        "DEPENDENCIES: networkx, pandas, json libraries\n",
        "INPUTS: CSV file with ArgDown structure and probability questions\n",
        "OUTPUTS: BayesDown markdown file with probability placeholders\n",
        "\"\"\"\n",
        "\n",
        "def extract_bayesdown_questions_fixed(argdown_with_questions_path, output_md_path, include_questions_as_comments=True):\n",
        "  \"\"\"\n",
        "  Generate BayesDown syntax from the ArgDown_WithQuestions CSV file with correct parent-child relationships.\n",
        "\n",
        "  Args:\n",
        "      argdown_with_questions_path (str): Path to the CSV file with probability questions\n",
        "      output_md_path (str): Path to save the output BayesDown file\n",
        "      include_questions_as_comments (bool, optional): Whether to include the original\n",
        "                                                    questions as comments. Defaults to True.\n",
        "\n",
        "  Returns:\n",
        "      str: The generated BayesDown content\n",
        "\n",
        "  Raises:\n",
        "      Exception: If CSV loading fails or required columns are missing\n",
        "  \"\"\"\n",
        "  print(f\"Loading CSV from {argdown_with_questions_path}...\")\n",
        "\n",
        "  # Load the CSV file\n",
        "  try:\n",
        "      df = pd.read_csv(argdown_with_questions_path)\n",
        "      print(f\"Successfully loaded CSV with {len(df)} rows.\")\n",
        "  except Exception as e:\n",
        "      raise Exception(f\"Error loading CSV: {e}\")\n",
        "\n",
        "  # Validate required columns\n",
        "  required_columns = ['Title', 'Description', 'Parents', 'Children', 'instantiations']\n",
        "  missing_columns = [col for col in required_columns if col not in df.columns]\n",
        "  if missing_columns:\n",
        "      raise Exception(f\"Missing required columns: {', '.join(missing_columns)}\")\n",
        "\n",
        "  print(\"Generating BayesDown syntax with placeholder probabilities...\")\n",
        "\n",
        "  # Build a directed graph of nodes\n",
        "  G = nx.DiGraph()\n",
        "\n",
        "  # Add nodes to the graph\n",
        "  for idx, row in df.iterrows():\n",
        "      G.add_node(row['Title'], data=row)\n",
        "\n",
        "  # Add edges to the graph based on parent-child relationships - CORRECTLY\n",
        "  for idx, row in df.iterrows():\n",
        "      child = row['Title']\n",
        "\n",
        "      # Parse parents and add edges\n",
        "      parents = row['Parents']\n",
        "      if isinstance(parents, str):\n",
        "          # Handle string representation of list\n",
        "          if parents.startswith('[') and parents.endswith(']'):\n",
        "              parents = parents.strip('[]')\n",
        "              if parents:  # Check if not empty\n",
        "                  parent_list = [p.strip().strip('\\'\"') for p in parents.split(',')]\n",
        "                  for parent in parent_list:\n",
        "                      if parent in G.nodes():\n",
        "                          # In BayesDown: Parent (cause) -> Child (effect)\n",
        "                          G.add_edge(parent, child)\n",
        "      elif isinstance(parents, list):\n",
        "          # Handle actual list\n",
        "          for parent in parents:\n",
        "              if parent in G.nodes():\n",
        "                  G.add_edge(parent, child)\n",
        "\n",
        "  # Function to safely parse JSON strings\n",
        "  def safe_parse_json(json_str):\n",
        "      if pd.isna(json_str):\n",
        "          return {}\n",
        "\n",
        "      if isinstance(json_str, dict):\n",
        "          return json_str\n",
        "\n",
        "      try:\n",
        "          return json.loads(json_str)\n",
        "      except:\n",
        "          return {}\n",
        "\n",
        "  # Start building the BayesDown content\n",
        "  bayesdown_content = \"\"  # Initialize as empty\n",
        "\n",
        "  if include_questions_as_comments:\n",
        "    bayesdown_content = \"# BayesDown Representation with Placeholder Probabilities\\n\\n\"\n",
        "    bayesdown_content += \"/* This file contains BayesDown syntax with placeholder probabilities.\\n\"\n",
        "    bayesdown_content += \"   Replace the placeholders with actual probability values based on the \\n\"\n",
        "    bayesdown_content += \"   questions in the comments. */\\n\\n\"\n",
        "\n",
        "  # Get leaf nodes (nodes with no outgoing edges) - these are effects without children\n",
        "  leaf_nodes = [n for n in G.nodes() if G.out_degree(n) == 0]\n",
        "\n",
        "  # Helper function to process a node and its parents recursively\n",
        "  def process_node(node, indent_level=0, processed_nodes=None):\n",
        "      if processed_nodes is None:\n",
        "          processed_nodes = set()\n",
        "\n",
        "      # Create the indentation string\n",
        "      indent = ' ' * (indent_level * 2)\n",
        "      prefix = f\"{indent}+ \" if indent_level > 0 else \"\"\n",
        "\n",
        "      # Get node data\n",
        "      node_data = G.nodes[node]['data']\n",
        "      title = node_data['Title']\n",
        "      description = node_data['Description'] if not pd.isna(node_data['Description']) else \"\"\n",
        "\n",
        "      # Parse instantiations from the row data\n",
        "      instantiations = parse_instantiations_safely(node_data['instantiations'])\n",
        "\n",
        "      # Build the node string\n",
        "      node_output = \"\"\n",
        "\n",
        "      # Add comments with questions if requested\n",
        "      if include_questions_as_comments:\n",
        "          # Add positive questions as comments\n",
        "          if 'Generate_Positive_Instantiation_Questions' in node_data:\n",
        "              positive_questions = safe_parse_json(node_data['Generate_Positive_Instantiation_Questions'])\n",
        "              for question in positive_questions.keys():\n",
        "                  node_output += f\"{indent}/* {question} */\\n\"\n",
        "\n",
        "          # Add negative questions as comments\n",
        "          if 'Generate_Negative_Instantiation_Questions' in node_data:\n",
        "              negative_questions = safe_parse_json(node_data['Generate_Negative_Instantiation_Questions'])\n",
        "              for question in negative_questions.keys():\n",
        "                  node_output += f\"{indent}/* {question} */\\n\"\n",
        "\n",
        "      # Check if this node was already fully defined elsewhere\n",
        "      if node in processed_nodes:\n",
        "          # Just add a reference to the node\n",
        "          node_output += f\"{prefix}[{title}]\\n\"\n",
        "          return node_output\n",
        "\n",
        "      # Mark this node as processed\n",
        "      processed_nodes.add(node)\n",
        "\n",
        "      # Prepare the metadata JSON\n",
        "      metadata = {\n",
        "          \"instantiations\": instantiations\n",
        "      }\n",
        "\n",
        "      # Add priors with full questions as keys\n",
        "      priors = {}\n",
        "      if 'Generate_Positive_Instantiation_Questions' in node_data:\n",
        "          positive_questions = safe_parse_json(node_data['Generate_Positive_Instantiation_Questions'])\n",
        "          for question, estimate_key in positive_questions.items():\n",
        "              if estimate_key == 'prior':\n",
        "                  priors[question] = \"%?\"  # Default placeholder\n",
        "\n",
        "      if 'Generate_Negative_Instantiation_Questions' in node_data:\n",
        "          negative_questions = safe_parse_json(node_data['Generate_Negative_Instantiation_Questions'])\n",
        "          for question, estimate_key in negative_questions.items():\n",
        "              if estimate_key == 'prior':\n",
        "                  priors[question] = \"%?\"  # Default placeholder\n",
        "\n",
        "      metadata[\"priors\"] = priors\n",
        "\n",
        "      # Add posteriors with full questions as keys\n",
        "      parents = list(G.predecessors(node))\n",
        "      if parents:\n",
        "          posteriors = {}\n",
        "          if 'Generate_Positive_Instantiation_Questions' in node_data:\n",
        "              positive_questions = safe_parse_json(node_data['Generate_Positive_Instantiation_Questions'])\n",
        "              for question, estimate_key in positive_questions.items():\n",
        "                  if estimate_key.startswith('estimate_'):\n",
        "                      posteriors[question] = \"?%\"  # Default placeholder\n",
        "\n",
        "          if 'Generate_Negative_Instantiation_Questions' in node_data:\n",
        "              negative_questions = safe_parse_json(node_data['Generate_Negative_Instantiation_Questions'])\n",
        "              for question, estimate_key in negative_questions.items():\n",
        "                  if estimate_key.startswith('estimate_'):\n",
        "                      posteriors[question] = \"?%\"  # Default placeholder\n",
        "\n",
        "          metadata[\"posteriors\"] = posteriors\n",
        "\n",
        "      # Format the node with metadata\n",
        "      node_output += f\"{prefix}[{title}]: {description} {json.dumps(metadata)}\\n\"\n",
        "\n",
        "      # Process parent nodes\n",
        "      for parent in parents:\n",
        "          if parent != node:  # Avoid self-references\n",
        "              parent_output = process_node(parent, indent_level + 1, processed_nodes)\n",
        "              node_output += parent_output\n",
        "\n",
        "      return node_output\n",
        "\n",
        "  # Helper function to parse instantiations safely\n",
        "  def parse_instantiations_safely(instantiations_data):\n",
        "      if isinstance(instantiations_data, list):\n",
        "          return instantiations_data if instantiations_data else [f\"TRUE\", f\"FALSE\"]\n",
        "\n",
        "      if isinstance(instantiations_data, str):\n",
        "          try:\n",
        "              parsed = json.loads(instantiations_data)\n",
        "              if isinstance(parsed, list):\n",
        "                  return parsed if parsed else [f\"TRUE\", f\"FALSE\"]\n",
        "          except:\n",
        "              if instantiations_data.startswith('[') and instantiations_data.endswith(']'):\n",
        "                  items = instantiations_data.strip('[]').split(',')\n",
        "                  result = [item.strip(' \"\\'') for item in items if item.strip()]\n",
        "                  return result if result else [f\"TRUE\", f\"FALSE\"]\n",
        "\n",
        "      return [f\"TRUE\", f\"FALSE\"]  # Default\n",
        "\n",
        "  # Process each leaf node and its ancestors\n",
        "  for leaf in leaf_nodes:\n",
        "      bayesdown_content += process_node(leaf)\n",
        "\n",
        "  # Save the BayesDown content\n",
        "  with open(output_md_path, 'w') as f:\n",
        "      f.write(bayesdown_content)\n",
        "\n",
        "  print(f\"BayesDown Questions saved to {output_md_path}\")\n",
        "  return bayesdown_content"
      ],
      "metadata": {
        "id": "NqUj94g8gn4p"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "source": [
        "# Explicitly set the value of include_questions_as_comments\n",
        "include_questions_as_comments=False  # or False, depending on your needs\n",
        "\n",
        "# Get the markdown content\n",
        "bayesdown_questions = extract_bayesdown_questions_fixed(\n",
        "  \"ArgDown_WithQuestions.csv\",\n",
        "  \"BayesDownQuestions.md\", include_questions_as_comments=include_questions_as_comments\n",
        ")\n",
        "\n",
        "# Determine the output file path based on include_questions_as_comments\n",
        "if include_questions_as_comments: # Assuming include_questions_as_comments is defined somewhere in previous cells\n",
        "    output_file_path = \"FULL_BayesDownQuestions.md\"\n",
        "else:\n",
        "    output_file_path = \"BayesDownQuestions.md\"\n",
        "\n",
        "# Save the markdown content to the appropriate file\n",
        "with open(output_file_path, 'w') as f:\n",
        "    f.write(md_content)\n",
        "\n",
        "print(f\"Markdown content saved to {output_file_path}\")"
      ],
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "V80XYvjYGnbE",
        "outputId": "bfd4b25f-4f1f-4ed8-d93a-f11a512f394f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading CSV from ArgDown_WithQuestions.csv...\n",
            "Successfully loaded CSV with 23 rows.\n",
            "Generating BayesDown syntax with placeholder probabilities...\n",
            "BayesDown Questions saved to BayesDownQuestions.md\n",
            "Markdown content saved to BayesDownQuestions.md\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Generate BayesDown format\n",
        "bayesdown_questions = extract_bayesdown_questions_fixed(\n",
        "    \"ArgDown_WithQuestions.csv\",\n",
        "    \"FULL_BayesDownQuestions.md\",\n",
        "    include_questions_as_comments=True\n",
        ")\n",
        "\n",
        "# Display a preview of the format\n",
        "print(\"\\nBayesDown Format Preview:\")\n",
        "print(bayesdown_questions[:50000] + \"...\\n\")"
      ],
      "metadata": {
        "id": "lBLyoERIT557",
        "outputId": "0bf29b0a-0a9c-4b5a-b988-a1dbe8f79a61",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading CSV from ArgDown_WithQuestions.csv...\n",
            "Successfully loaded CSV with 23 rows.\n",
            "Generating BayesDown syntax with placeholder probabilities...\n",
            "BayesDown Questions saved to FULL_BayesDownQuestions.md\n",
            "\n",
            "BayesDown Format Preview:\n",
            "# BayesDown Representation with Placeholder Probabilities\n",
            "\n",
            "/* This file contains BayesDown syntax with placeholder probabilities.\n",
            "   Replace the placeholders with actual probability values based on the \n",
            "   questions in the comments. */\n",
            "\n",
            "/* What is the probability for Existential_Catastrophe=existential_catastrophe_TRUE? */\n",
            "/* What is the probability for Existential_Catastrophe=existential_catastrophe_FALSE? */\n",
            "[Existential_Catastrophe]: The destruction of humanity's long-term potential due to AI systems we've lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"], \"priors\": {\"What is the probability for Existential_Catastrophe=existential_catastrophe_TRUE?\": \"%?\", \"What is the probability for Existential_Catastrophe=existential_catastrophe_FALSE?\": \"%?\"}}\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_TRUE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_FALSE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE? */\n",
            "[Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"], \"priors\": {\"What is the probability for Human_Disempowerment=human_disempowerment_TRUE?\": \"%?\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"?%\"}}\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  + [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"], \"priors\": {\"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"%?\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\"}}\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    + [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE?\": \"%?\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\"}}\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      + [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"], \"priors\": {\"What is the probability for APS_Systems=aps_systems_TRUE?\": \"%?\", \"What is the probability for APS_Systems=aps_systems_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\"}}\n",
            "        /* What is the probability for Advanced_AI_Capability=advanced_ai_capability_TRUE? */\n",
            "        /* What is the probability for Advanced_AI_Capability=advanced_ai_capability_FALSE? */\n",
            "        + [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"], \"priors\": {\"What is the probability for Advanced_AI_Capability=advanced_ai_capability_TRUE?\": \"%?\", \"What is the probability for Advanced_AI_Capability=advanced_ai_capability_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Agentic_Planning=agentic_planning_TRUE? */\n",
            "        /* What is the probability for Agentic_Planning=agentic_planning_FALSE? */\n",
            "        + [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"], \"priors\": {\"What is the probability for Agentic_Planning=agentic_planning_TRUE?\": \"%?\", \"What is the probability for Agentic_Planning=agentic_planning_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "        /* What is the probability for Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "        + [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"], \"priors\": {\"What is the probability for Strategic_Awareness=strategic_awareness_TRUE?\": \"%?\", \"What is the probability for Strategic_Awareness=strategic_awareness_FALSE?\": \"%?\"}}\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      + [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"], \"priors\": {\"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE?\": \"%?\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\"}}\n",
            "        /* What is the probability for Instrumental_Convergence=instrumental_convergence_TRUE? */\n",
            "        /* What is the probability for Instrumental_Convergence=instrumental_convergence_FALSE? */\n",
            "        + [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"], \"priors\": {\"What is the probability for Instrumental_Convergence=instrumental_convergence_TRUE?\": \"%?\", \"What is the probability for Instrumental_Convergence=instrumental_convergence_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Problems_With_Proxies=problems_with_proxies_TRUE? */\n",
            "        /* What is the probability for Problems_With_Proxies=problems_with_proxies_FALSE? */\n",
            "        + [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"], \"priors\": {\"What is the probability for Problems_With_Proxies=problems_with_proxies_TRUE?\": \"%?\", \"What is the probability for Problems_With_Proxies=problems_with_proxies_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Problems_With_Search=problems_with_search_TRUE? */\n",
            "        /* What is the probability for Problems_With_Search=problems_with_search_FALSE? */\n",
            "        + [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"], \"priors\": {\"What is the probability for Problems_With_Search=problems_with_search_TRUE?\": \"%?\", \"What is the probability for Problems_With_Search=problems_with_search_FALSE?\": \"%?\"}}\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      + [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"], \"priors\": {\"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY?\": \"%?\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"%?\"}, \"posteriors\": {\"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\"}}\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        + [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"], \"priors\": {\"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG?\": \"%?\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK?\": \"%?\"}, \"posteriors\": {\"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\"}}\n",
            "          /* What is the probability for Usefulness_Of_APS=usefulness_of_aps_HIGH? */\n",
            "          /* What is the probability for Usefulness_Of_APS=usefulness_of_aps_LOW? */\n",
            "          + [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"], \"priors\": {\"What is the probability for Usefulness_Of_APS=usefulness_of_aps_HIGH?\": \"%?\", \"What is the probability for Usefulness_Of_APS=usefulness_of_aps_LOW?\": \"%?\"}}\n",
            "          /* What is the probability for Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "          /* What is the probability for Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "          + [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"], \"priors\": {\"What is the probability for Competitive_Dynamics=competitive_dynamics_STRONG?\": \"%?\", \"What is the probability for Competitive_Dynamics=competitive_dynamics_WEAK?\": \"%?\"}}\n",
            "        /* What is the probability for Deception_By_AI=deception_by_ai_TRUE? */\n",
            "        /* What is the probability for Deception_By_AI=deception_by_ai_FALSE? */\n",
            "        + [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"], \"priors\": {\"What is the probability for Deception_By_AI=deception_by_ai_TRUE?\": \"%?\", \"What is the probability for Deception_By_AI=deception_by_ai_FALSE?\": \"%?\"}}\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    + [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"], \"priors\": {\"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"%?\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\"}}\n",
            "      /* What is the probability for Warning_Shots=warning_shots_OBSERVED? */\n",
            "      /* What is the probability for Warning_Shots=warning_shots_UNOBSERVED? */\n",
            "      + [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"], \"priors\": {\"What is the probability for Warning_Shots=warning_shots_OBSERVED?\": \"%?\", \"What is the probability for Warning_Shots=warning_shots_UNOBSERVED?\": \"%?\"}}\n",
            "      /* What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "      /* What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "      + [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"], \"priors\": {\"What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"%?\", \"What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"%?\"}}\n",
            "/* What is the probability for Barriers_To_Understanding=barriers_to_understanding_HIGH? */\n",
            "/* What is the probability for Barriers_To_Understanding=barriers_to_understanding_LOW? */\n",
            "[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"], \"priors\": {\"What is the probability for Barriers_To_Understanding=barriers_to_understanding_HIGH?\": \"%?\", \"What is the probability for Barriers_To_Understanding=barriers_to_understanding_LOW?\": \"%?\"}}\n",
            "/* What is the probability for Adversarial_Dynamics=adversarial_dynamics_TRUE? */\n",
            "/* What is the probability for Adversarial_Dynamics=adversarial_dynamics_FALSE? */\n",
            "[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"], \"priors\": {\"What is the probability for Adversarial_Dynamics=adversarial_dynamics_TRUE?\": \"%?\", \"What is the probability for Adversarial_Dynamics=adversarial_dynamics_FALSE?\": \"%?\"}}\n",
            "/* What is the probability for Stakes_Of_Error=stakes_of_error_HIGH? */\n",
            "/* What is the probability for Stakes_Of_Error=stakes_of_error_LOW? */\n",
            "[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"], \"priors\": {\"What is the probability for Stakes_Of_Error=stakes_of_error_HIGH?\": \"%?\", \"What is the probability for Stakes_Of_Error=stakes_of_error_LOW?\": \"%?\"}}\n",
            "...\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Load and print the content of the 'FULL_BayesDownQuestions.md' file\n",
        "with open(\"FULL_BayesDownQuestions.md\", \"r\") as f:\n",
        "    file_content = f.read()\n",
        "    print(file_content)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cTZslwsXHUfK",
        "outputId": "5c291497-6f69-48b6-827d-20f09a083ff7",
        "collapsed": true
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "# BayesDown Representation with Placeholder Probabilities\n",
            "\n",
            "/* This file contains BayesDown syntax with placeholder probabilities.\n",
            "   Replace the placeholders with actual probability values based on the \n",
            "   questions in the comments. */\n",
            "\n",
            "/* What is the probability for Existential_Catastrophe=existential_catastrophe_TRUE? */\n",
            "/* What is the probability for Existential_Catastrophe=existential_catastrophe_FALSE? */\n",
            "[Existential_Catastrophe]: The destruction of humanity's long-term potential due to AI systems we've lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"], \"priors\": {\"What is the probability for Existential_Catastrophe=existential_catastrophe_TRUE?\": \"%?\", \"What is the probability for Existential_Catastrophe=existential_catastrophe_FALSE?\": \"%?\"}}\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_TRUE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_FALSE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE? */\n",
            "/* What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE? */\n",
            "[Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"], \"priors\": {\"What is the probability for Human_Disempowerment=human_disempowerment_TRUE?\": \"%?\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"?%\"}}\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "  /* What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "  + [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"], \"priors\": {\"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"%?\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\"}}\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "    /* What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "    + [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE?\": \"%?\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\"}}\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "      /* What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "      + [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"], \"priors\": {\"What is the probability for APS_Systems=aps_systems_TRUE?\": \"%?\", \"What is the probability for APS_Systems=aps_systems_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\"}}\n",
            "        /* What is the probability for Advanced_AI_Capability=advanced_ai_capability_TRUE? */\n",
            "        /* What is the probability for Advanced_AI_Capability=advanced_ai_capability_FALSE? */\n",
            "        + [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"], \"priors\": {\"What is the probability for Advanced_AI_Capability=advanced_ai_capability_TRUE?\": \"%?\", \"What is the probability for Advanced_AI_Capability=advanced_ai_capability_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Agentic_Planning=agentic_planning_TRUE? */\n",
            "        /* What is the probability for Agentic_Planning=agentic_planning_FALSE? */\n",
            "        + [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"], \"priors\": {\"What is the probability for Agentic_Planning=agentic_planning_TRUE?\": \"%?\", \"What is the probability for Agentic_Planning=agentic_planning_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Strategic_Awareness=strategic_awareness_TRUE? */\n",
            "        /* What is the probability for Strategic_Awareness=strategic_awareness_FALSE? */\n",
            "        + [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"], \"priors\": {\"What is the probability for Strategic_Awareness=strategic_awareness_TRUE?\": \"%?\", \"What is the probability for Strategic_Awareness=strategic_awareness_FALSE?\": \"%?\"}}\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE? */\n",
            "      /* What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE? */\n",
            "      + [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"], \"priors\": {\"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE?\": \"%?\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\"}}\n",
            "        /* What is the probability for Instrumental_Convergence=instrumental_convergence_TRUE? */\n",
            "        /* What is the probability for Instrumental_Convergence=instrumental_convergence_FALSE? */\n",
            "        + [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"], \"priors\": {\"What is the probability for Instrumental_Convergence=instrumental_convergence_TRUE?\": \"%?\", \"What is the probability for Instrumental_Convergence=instrumental_convergence_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Problems_With_Proxies=problems_with_proxies_TRUE? */\n",
            "        /* What is the probability for Problems_With_Proxies=problems_with_proxies_FALSE? */\n",
            "        + [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"], \"priors\": {\"What is the probability for Problems_With_Proxies=problems_with_proxies_TRUE?\": \"%?\", \"What is the probability for Problems_With_Proxies=problems_with_proxies_FALSE?\": \"%?\"}}\n",
            "        /* What is the probability for Problems_With_Search=problems_with_search_TRUE? */\n",
            "        /* What is the probability for Problems_With_Search=problems_with_search_FALSE? */\n",
            "        + [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"], \"priors\": {\"What is the probability for Problems_With_Search=problems_with_search_TRUE?\": \"%?\", \"What is the probability for Problems_With_Search=problems_with_search_FALSE?\": \"%?\"}}\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE? */\n",
            "      /* What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE? */\n",
            "      + [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"], \"priors\": {\"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY?\": \"%?\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"%?\"}, \"posteriors\": {\"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\"}}\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "        /* What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "        + [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"], \"priors\": {\"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG?\": \"%?\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK?\": \"%?\"}, \"posteriors\": {\"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\"}}\n",
            "          /* What is the probability for Usefulness_Of_APS=usefulness_of_aps_HIGH? */\n",
            "          /* What is the probability for Usefulness_Of_APS=usefulness_of_aps_LOW? */\n",
            "          + [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"], \"priors\": {\"What is the probability for Usefulness_Of_APS=usefulness_of_aps_HIGH?\": \"%?\", \"What is the probability for Usefulness_Of_APS=usefulness_of_aps_LOW?\": \"%?\"}}\n",
            "          /* What is the probability for Competitive_Dynamics=competitive_dynamics_STRONG? */\n",
            "          /* What is the probability for Competitive_Dynamics=competitive_dynamics_WEAK? */\n",
            "          + [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"], \"priors\": {\"What is the probability for Competitive_Dynamics=competitive_dynamics_STRONG?\": \"%?\", \"What is the probability for Competitive_Dynamics=competitive_dynamics_WEAK?\": \"%?\"}}\n",
            "        /* What is the probability for Deception_By_AI=deception_by_ai_TRUE? */\n",
            "        /* What is the probability for Deception_By_AI=deception_by_ai_FALSE? */\n",
            "        + [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"], \"priors\": {\"What is the probability for Deception_By_AI=deception_by_ai_TRUE?\": \"%?\", \"What is the probability for Deception_By_AI=deception_by_ai_FALSE?\": \"%?\"}}\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "    /* What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "    + [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"], \"priors\": {\"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"%?\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\"}}\n",
            "      /* What is the probability for Warning_Shots=warning_shots_OBSERVED? */\n",
            "      /* What is the probability for Warning_Shots=warning_shots_UNOBSERVED? */\n",
            "      + [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"], \"priors\": {\"What is the probability for Warning_Shots=warning_shots_OBSERVED?\": \"%?\", \"What is the probability for Warning_Shots=warning_shots_UNOBSERVED?\": \"%?\"}}\n",
            "      /* What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_TRUE? */\n",
            "      /* What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_FALSE? */\n",
            "      + [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"], \"priors\": {\"What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"%?\", \"What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"%?\"}}\n",
            "/* What is the probability for Barriers_To_Understanding=barriers_to_understanding_HIGH? */\n",
            "/* What is the probability for Barriers_To_Understanding=barriers_to_understanding_LOW? */\n",
            "[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"], \"priors\": {\"What is the probability for Barriers_To_Understanding=barriers_to_understanding_HIGH?\": \"%?\", \"What is the probability for Barriers_To_Understanding=barriers_to_understanding_LOW?\": \"%?\"}}\n",
            "/* What is the probability for Adversarial_Dynamics=adversarial_dynamics_TRUE? */\n",
            "/* What is the probability for Adversarial_Dynamics=adversarial_dynamics_FALSE? */\n",
            "[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"], \"priors\": {\"What is the probability for Adversarial_Dynamics=adversarial_dynamics_TRUE?\": \"%?\", \"What is the probability for Adversarial_Dynamics=adversarial_dynamics_FALSE?\": \"%?\"}}\n",
            "/* What is the probability for Stakes_Of_Error=stakes_of_error_HIGH? */\n",
            "/* What is the probability for Stakes_Of_Error=stakes_of_error_LOW? */\n",
            "[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"], \"priors\": {\"What is the probability for Stakes_Of_Error=stakes_of_error_HIGH?\": \"%?\", \"What is the probability for Stakes_Of_Error=stakes_of_error_LOW?\": \"%?\"}}\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Generate BayesDown format\n",
        "bayesdown_questions = extract_bayesdown_questions_fixed(\n",
        "    \"ArgDown_WithQuestions.csv\",\n",
        "    \"BayesDownQuestions.md\",\n",
        "    include_questions_as_comments=False\n",
        ")\n",
        "\n",
        "# Display a preview of the format\n",
        "print(\n",
        "\n",
        ")\n",
        "print(bayesdown_questions[:50000] + \"...\\n\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PMIRJVfmT_gO",
        "outputId": "80e15f1d-449e-406c-b146-d694ddb0e9b8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading CSV from ArgDown_WithQuestions.csv...\n",
            "Successfully loaded CSV with 23 rows.\n",
            "Generating BayesDown syntax with placeholder probabilities...\n",
            "BayesDown Questions saved to BayesDownQuestions.md\n",
            "\n",
            "[Existential_Catastrophe]: The destruction of humanity's long-term potential due to AI systems we've lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"], \"priors\": {\"What is the probability for Existential_Catastrophe=existential_catastrophe_TRUE?\": \"%?\", \"What is the probability for Existential_Catastrophe=existential_catastrophe_FALSE?\": \"%?\"}}\n",
            "[Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"], \"priors\": {\"What is the probability for Human_Disempowerment=human_disempowerment_TRUE?\": \"%?\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_TRUE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"?%\", \"What is the probability for Human_Disempowerment=human_disempowerment_FALSE if Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"?%\"}}\n",
            "  + [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"], \"priors\": {\"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE?\": \"%?\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_TRUE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_TRUE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"?%\", \"What is the probability for Scale_Of_Power_Seeking=scale_of_power_seeking_FALSE if Misaligned_Power_Seeking=misaligned_power_seeking_FALSE, Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"?%\"}}\n",
            "    + [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE?\": \"%?\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_TRUE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_TRUE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_TRUE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_DEPLOY?\": \"?%\", \"What is the probability for Misaligned_Power_Seeking=misaligned_power_seeking_FALSE if APS_Systems=aps_systems_FALSE, Difficulty_Of_Alignment=difficulty_of_alignment_FALSE, Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"?%\"}}\n",
            "      + [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"], \"priors\": {\"What is the probability for APS_Systems=aps_systems_TRUE?\": \"%?\", \"What is the probability for APS_Systems=aps_systems_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_TRUE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_TRUE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_TRUE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_TRUE?\": \"?%\", \"What is the probability for APS_Systems=aps_systems_FALSE if Advanced_AI_Capability=advanced_ai_capability_FALSE, Agentic_Planning=agentic_planning_FALSE, Strategic_Awareness=strategic_awareness_FALSE?\": \"?%\"}}\n",
            "        + [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"], \"priors\": {\"What is the probability for Advanced_AI_Capability=advanced_ai_capability_TRUE?\": \"%?\", \"What is the probability for Advanced_AI_Capability=advanced_ai_capability_FALSE?\": \"%?\"}}\n",
            "        + [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"], \"priors\": {\"What is the probability for Agentic_Planning=agentic_planning_TRUE?\": \"%?\", \"What is the probability for Agentic_Planning=agentic_planning_FALSE?\": \"%?\"}}\n",
            "        + [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"], \"priors\": {\"What is the probability for Strategic_Awareness=strategic_awareness_TRUE?\": \"%?\", \"What is the probability for Strategic_Awareness=strategic_awareness_FALSE?\": \"%?\"}}\n",
            "      + [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"], \"priors\": {\"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE?\": \"%?\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_TRUE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_TRUE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_TRUE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_TRUE?\": \"?%\", \"What is the probability for Difficulty_Of_Alignment=difficulty_of_alignment_FALSE if Instrumental_Convergence=instrumental_convergence_FALSE, Problems_With_Proxies=problems_with_proxies_FALSE, Problems_With_Search=problems_with_search_FALSE?\": \"?%\"}}\n",
            "        + [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"], \"priors\": {\"What is the probability for Instrumental_Convergence=instrumental_convergence_TRUE?\": \"%?\", \"What is the probability for Instrumental_Convergence=instrumental_convergence_FALSE?\": \"%?\"}}\n",
            "        + [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"], \"priors\": {\"What is the probability for Problems_With_Proxies=problems_with_proxies_TRUE?\": \"%?\", \"What is the probability for Problems_With_Proxies=problems_with_proxies_FALSE?\": \"%?\"}}\n",
            "        + [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"], \"priors\": {\"What is the probability for Problems_With_Search=problems_with_search_TRUE?\": \"%?\", \"What is the probability for Problems_With_Search=problems_with_search_FALSE?\": \"%?\"}}\n",
            "      + [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"], \"priors\": {\"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY?\": \"%?\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD?\": \"%?\"}, \"posteriors\": {\"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_DEPLOY if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_STRONG, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_TRUE?\": \"?%\", \"What is the probability for Deployment_Decisions=deployment_decisions_WITHHOLD if Incentives_To_Build_APS=incentives_to_build_aps_WEAK, Deception_By_AI=deception_by_ai_FALSE?\": \"?%\"}}\n",
            "        + [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"], \"priors\": {\"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG?\": \"%?\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK?\": \"%?\"}, \"posteriors\": {\"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_STRONG if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_HIGH, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_STRONG?\": \"?%\", \"What is the probability for Incentives_To_Build_APS=incentives_to_build_aps_WEAK if Usefulness_Of_APS=usefulness_of_aps_LOW, Competitive_Dynamics=competitive_dynamics_WEAK?\": \"?%\"}}\n",
            "          + [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"], \"priors\": {\"What is the probability for Usefulness_Of_APS=usefulness_of_aps_HIGH?\": \"%?\", \"What is the probability for Usefulness_Of_APS=usefulness_of_aps_LOW?\": \"%?\"}}\n",
            "          + [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"], \"priors\": {\"What is the probability for Competitive_Dynamics=competitive_dynamics_STRONG?\": \"%?\", \"What is the probability for Competitive_Dynamics=competitive_dynamics_WEAK?\": \"%?\"}}\n",
            "        + [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"], \"priors\": {\"What is the probability for Deception_By_AI=deception_by_ai_TRUE?\": \"%?\", \"What is the probability for Deception_By_AI=deception_by_ai_FALSE?\": \"%?\"}}\n",
            "    + [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"], \"priors\": {\"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE?\": \"%?\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE?\": \"%?\"}, \"posteriors\": {\"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_EFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_OBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"?%\", \"What is the probability for Corrective_Feedback=corrective_feedback_INEFFECTIVE if Warning_Shots=warning_shots_UNOBSERVED, Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"?%\"}}\n",
            "      + [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"], \"priors\": {\"What is the probability for Warning_Shots=warning_shots_OBSERVED?\": \"%?\", \"What is the probability for Warning_Shots=warning_shots_UNOBSERVED?\": \"%?\"}}\n",
            "      + [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"], \"priors\": {\"What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_TRUE?\": \"%?\", \"What is the probability for Rapid_Capability_Escalation=rapid_capability_escalation_FALSE?\": \"%?\"}}\n",
            "[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"], \"priors\": {\"What is the probability for Barriers_To_Understanding=barriers_to_understanding_HIGH?\": \"%?\", \"What is the probability for Barriers_To_Understanding=barriers_to_understanding_LOW?\": \"%?\"}}\n",
            "[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"], \"priors\": {\"What is the probability for Adversarial_Dynamics=adversarial_dynamics_TRUE?\": \"%?\", \"What is the probability for Adversarial_Dynamics=adversarial_dynamics_FALSE?\": \"%?\"}}\n",
            "[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"], \"priors\": {\"What is the probability for Stakes_Of_Error=stakes_of_error_HIGH?\": \"%?\", \"What is the probability for Stakes_Of_Error=stakes_of_error_LOW?\": \"%?\"}}\n",
            "...\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.3 Generate BayesDown Probability Extraction Prompt\n",
        "\n",
        "Generate 2nd Extraction Prompt for Probabilities based on the questions generated from the 'ArgDown.csv' extraction"
      ],
      "metadata": {
        "id": "Ux4OUCPue6Bu"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ivcnd2ml41Nv"
      },
      "source": [
        "## 2.3.1 BayesDown Format Specification\n",
        "\n",
        "BayesDown extends ArgDown with probability data in a structured JSON format to represent Bayesian networks. This intermediate representation bridges the gap between natural language arguments and formal probabilistic models, preserving both narrative structure and quantitative relationships.\n",
        "\n",
        "### Core Structure\n",
        "\n",
        "A BayesDown representation consists of:\n",
        "\n",
        "1. **Nodes**: Variables or statements in brackets `[Node_Name]` with descriptive text\n",
        "2. **Relationships**: Hierarchical structure with indentation and `+` symbols\n",
        "3. **Metadata**: JSON objects containing probability information:\n",
        "\n",
        "```json\n",
        "{\n",
        "  \"instantiations\": [\"state_TRUE\", \"state_FALSE\"],  // Possible states of variable\n",
        "  \"priors\": {\n",
        "    \"p(state_TRUE)\": \"0.7\",   // Unconditional probability of state_TRUE\n",
        "    \"p(state_FALSE)\": \"0.3\"   // Unconditional probability of state_FALSE\n",
        "  },\n",
        "  \"posteriors\": {\n",
        "    \"p(state_TRUE|condition1_TRUE,condition2_FALSE)\": \"0.9\",  // Conditional on parent states\n",
        "    \"p(state_TRUE|condition1_FALSE,condition2_TRUE)\": \"0.4\"   // Different parent configuration\n",
        "  }\n",
        "}"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "##### Rain-Sprinkler-Lawn Example\n",
        "[Grass_Wet]: Concentrated moisture on grass. {\"instantiations\": [\"grass_wet_TRUE\", \"grass_wet_FALSE\"],\n",
        "\"priors\": {\"p(grass_wet_TRUE)\": \"0.322\", \"p(grass_wet_FALSE)\": \"0.678\"},\n",
        "\"posteriors\": {\"p(grass_wet_TRUE|sprinkler_TRUE,rain_TRUE)\": \"0.99\",\n",
        "\"p(grass_wet_TRUE|sprinkler_TRUE,rain_FALSE)\": \"0.9\",\n",
        "\"p(grass_wet_TRUE|sprinkler_FALSE,rain_TRUE)\": \"0.8\",\n",
        "\"p(grass_wet_TRUE|sprinkler_FALSE,rain_FALSE)\": \"0.0\"}}\n",
        " + [Rain]: Water falling from the sky. {\"instantiations\": [\"rain_TRUE\", \"rain_FALSE\"],\n",
        " \"priors\": {\"p(rain_TRUE)\": \"0.2\", \"p(rain_FALSE)\": \"0.8\"}}\n",
        " + [Sprinkler]: Artificial watering system. {\"instantiations\": [\"sprinkler_TRUE\", \"sprinkler_FALSE\"],\n",
        " \"priors\": {\"p(sprinkler_TRUE)\": \"0.44838\", \"p(sprinkler_FALSE)\": \"0.55162\"},\n",
        " \"posteriors\": {\"p(sprinkler_TRUE|rain_TRUE)\": \"0.01\", \"p(sprinkler_TRUE|rain_FALSE)\": \"0.4\"}}\n",
        "   + [Rain]\n",
        "\n",
        "\n",
        "In this example:\n",
        "\n",
        "+ Grass_Wet is the effect/outcome node\n",
        "+ Rain and Sprinkler are parent nodes (causes)\n",
        "+ Rain also influences Sprinkler (people tend not to use sprinklers when it's raining)\n",
        "\n",
        "Role in AMTAIR\n",
        "BayesDown serves as the critical intermediate representation in the AMTAIR extraction pipeline, bridging between qualitative arguments in AI safety literature and formal Bayesian networks that can be used for probabilistic reasoning and policy evaluation. By preserving both narrative explanation and probabilistic information, it enables the automated extraction of world models while maintaining traceability to the original arguments.\n",
        "For full syntax details, see the BayesDownSyntax.md file in the repository."
      ],
      "metadata": {
        "id": "Fn72WmgVEOH0"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ncRX492c4-Q7"
      },
      "source": [
        "2.3.2 Probability Extraction Process\n",
        "The probability extraction pipeline follows these steps:\n",
        "\n",
        "\n",
        "Identify variables and their possible states\n",
        "Extract prior probability statements\n",
        "Identify conditional relationships\n",
        "Extract conditional probability statements\n",
        "Format the data in BayesDown syntax"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wNSbA0Wm5Uzn"
      },
      "source": [
        "2.3.3 Implementation Steps\n",
        "To extract probabilities and create BayesDown format:\n",
        "\n",
        "Run the extract_probabilities function on ArgDown text\n",
        "Process the results into a structured format\n",
        "Validate the probability distributions (ensure they sum to 1)\n",
        "Generate the enhanced BayesDown representation"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qnk9mFMG5kNS"
      },
      "source": [
        "2.3.4 Validation and Quality Control\n",
        "The probability extraction process includes validation steps:\n",
        "\n",
        "Ensuring coherent probability distributions\n",
        "Checking for logical consistency in conditional relationships\n",
        "Verifying that all required probability statements are present\n",
        "Handling missing data with appropriate default values"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.4 Prepare 2nd API call"
      ],
      "metadata": {
        "id": "d4tB9WD-fIWZ"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.5 Make BayesDown Probability Extraction API Call"
      ],
      "metadata": {
        "id": "oPWto83lfN9Q"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.6 Save BayesDown with Probability Estimates (.csv)"
      ],
      "metadata": {
        "id": "L8NWpz8MfZ9_"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.7 Review & Verify BayesDown Probability Estimates"
      ],
      "metadata": {
        "id": "Q3PTtYgRfsLa"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.7.2 Check the Graph Structure with the ArgDown Sandbox Online\n",
        "Copy and paste the BayesDown formatted ... in the ArgDown Sandbox below to quickly verify that the network renders correctly."
      ],
      "metadata": {
        "id": "VwoAgBsafonh"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2.8 Extract BayesDown with Probability Estimates as Dataframe"
      ],
      "metadata": {
        "id": "19KDn2mKf309"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 3.0 Data Extraction: BayesDown (.md) to Database (.csv)\n",
        "\n",
        "# 3. BayesDown to Structured Data: Network Construction\n",
        "\n",
        "## Extraction Pipeline Overview\n",
        "\n",
        "This section implements the core extraction pipeline described in the AMTAIR project documentation (see `PY_TechnicalImplementation.md`), which transforms structured argument representations into formal Bayesian networks through a series of processing steps:\n",
        "\n",
        "1. **Input**: Text in BayesDown format (see Section 2.3.1)\n",
        "2. **Parsing**: Extract nodes, relationships, and probability information\n",
        "3. **Structuring**: Organize into a DataFrame with formal relationships\n",
        "4. **Enhancement**: Add derived properties and network metrics\n",
        "5. **Output**: Structured data ready for Bayesian network construction\n",
        "\n",
        "### Theoretical Foundation\n",
        "\n",
        "This implementation follows the extraction algorithm outlined in the AMTAIR project description:\n",
        "\n",
        "1. Get nodes: All premises and conclusions from the argument structure\n",
        "2. Get edges: Parent-child relationships between nodes\n",
        "3. Extract probability distributions: Prior and conditional probabilities\n",
        "4. Calculate derived metrics: Network statistics and node classifications\n",
        "\n",
        "The resulting structured data maintains the complete information needed to reconstruct the Bayesian network while enabling additional analysis and visualization.\n",
        "\n",
        "### Role in Thesis Research\n",
        "\n",
        "This extraction pipeline represents a key contribution of the Master's thesis, demonstrating how argument structures from AI safety literature can be automatically transformed into formal probabilistic models. While the current implementation focuses on pre-formatted BayesDown, the architecture is designed to be extended with LLM-powered extraction directly from natural language in future work.\n",
        "\n",
        "The rain-sprinkler-lawn example serves as a simple but complete test case, demonstrating every step in the pipeline from structured text to interactive Bayesian network visualization."
      ],
      "metadata": {
        "id": "vUSS00TCEpeW"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "AFnu_1Ludahi"
      },
      "source": [
        "### 3.1 ExtractBayesDown-Data_v1\n",
        "Build data frame with extractable information from BayesDown"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ka4kLU_sj4nH",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        },
        "outputId": "e0bc7224-c20b-4662-ba80-898e88b06523"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'[Existential_Catastrophe]: The destruction of humanity\\'s long-term potential due to AI systems we\\'ve lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"], \"priors\": {\"p(existential_catastrophe_TRUE)\": \"0.05\", \"p(existential_catastrophe_FALSE)\": \"0.95\"}, \"posteriors\": {\"p(existential_catastrophe_TRUE|human_disempowerment_TRUE)\": \"0.95\", \"p(existential_catastrophe_TRUE|human_disempowerment_FALSE)\": \"0.0\", \"p(existential_catastrophe_FALSE|human_disempowerment_TRUE)\": \"0.05\", \"p(existential_catastrophe_FALSE|human_disempowerment_FALSE)\": \"1.0\"}}\\n- [Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"], \"priors\": {\"p(human_disempowerment_TRUE)\": \"0.208\", \"p(human_disempowerment_FALSE)\": \"0.792\"}, \"posteriors\": {\"p(human_disempowerment_TRUE|scale_of_power_seeking_TRUE)\": \"1.0\", \"p(human_disempowerment_TRUE|scale_of_power_seeking_FALSE)\": \"0.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_TRUE)\": \"0.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_FALSE)\": \"1.0\"}}\\n    - [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"], \"priors\": {\"p(scale_of_power_seeking_TRUE)\": \"0.208\", \"p(scale_of_power_seeking_FALSE)\": \"0.792\"}, \"posteriors\": {\"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.25\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.60\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.75\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.40\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"1.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"1.0\"}}\\n        - [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}, \"posteriors\": {\"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.90\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.10\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.25\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.05\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.10\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.90\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.75\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.95\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"1.0\"}}\\n            - [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"], \"priors\": {\"p(aps_systems_TRUE)\": \"0.65\", \"p(aps_systems_FALSE)\": \"0.35\"}, \"posteriors\": {\"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\"}}\\n                - [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"], \"priors\": {\"p(advanced_ai_capability_TRUE)\": \"0.80\", \"p(advanced_ai_capability_FALSE)\": \"0.20\"}}\\n                - [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"], \"priors\": {\"p(agentic_planning_TRUE)\": \"0.85\", \"p(agentic_planning_FALSE)\": \"0.15\"}}\\n                - [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"], \"priors\": {\"p(strategic_awareness_TRUE)\": \"0.75\", \"p(strategic_awareness_FALSE)\": \"0.25\"}}\\n            - [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"], \"priors\": {\"p(difficulty_of_alignment_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE)\": \"0.60\"}, \"posteriors\": {\"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.85\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.70\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.60\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.55\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.30\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.10\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.15\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.30\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.45\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.70\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.90\"}}\\n                - [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"], \"priors\": {\"p(instrumental_convergence_TRUE)\": \"0.75\", \"p(instrumental_convergence_FALSE)\": \"0.25\"}}\\n                - [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"], \"priors\": {\"p(problems_with_proxies_TRUE)\": \"0.80\", \"p(problems_with_proxies_FALSE)\": \"0.20\"}}\\n                - [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"], \"priors\": {\"p(problems_with_search_TRUE)\": \"0.70\", \"p(problems_with_search_FALSE)\": \"0.30\"}}\\n            - [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"], \"priors\": {\"p(deployment_decisions_DEPLOY)\": \"0.70\", \"p(deployment_decisions_WITHHOLD)\": \"0.30\"}, \"posteriors\": {\"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.90\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.75\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.60\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.30\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.10\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.25\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.40\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.70\"}}\\n                - [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"], \"priors\": {\"p(incentives_to_build_aps_STRONG)\": \"0.80\", \"p(incentives_to_build_aps_WEAK)\": \"0.20\"}, \"posteriors\": {\"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.95\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.80\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.70\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.05\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.20\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.70\"}}\\n                    - [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"], \"priors\": {\"p(usefulness_of_aps_HIGH)\": \"0.85\", \"p(usefulness_of_aps_LOW)\": \"0.15\"}}\\n                    - [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"], \"priors\": {\"p(competitive_dynamics_STRONG)\": \"0.75\", \"p(competitive_dynamics_WEAK)\": \"0.25\"}}\\n                - [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"], \"priors\": {\"p(deception_by_ai_TRUE)\": \"0.50\", \"p(deception_by_ai_FALSE)\": \"0.50\"}}\\n        - [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"], \"priors\": {\"p(corrective_feedback_EFFECTIVE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE)\": \"0.40\"}, \"posteriors\": {\"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.40\", \"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.80\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.15\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.20\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.85\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\"}}\\n            - [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"], \"priors\": {\"p(warning_shots_OBSERVED)\": \"0.70\", \"p(warning_shots_UNOBSERVED)\": \"0.30\"}}\\n            - [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"], \"priors\": {\"p(rapid_capability_escalation_TRUE)\": \"0.45\", \"p(rapid_capability_escalation_FALSE)\": \"0.55\"}}\\n[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"], \"priors\": {\"p(barriers_to_understanding_HIGH)\": \"0.70\", \"p(barriers_to_understanding_LOW)\": \"0.30\"}, \"posteriors\": {\"p(barriers_to_understanding_HIGH|misaligned_power_seeking_TRUE)\": \"0.85\", \"p(barriers_to_understanding_HIGH|misaligned_power_seeking_FALSE)\": \"0.60\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_TRUE)\": \"0.15\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_FALSE)\": \"0.40\"}}\\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}}\\n[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"], \"priors\": {\"p(adversarial_dynamics_TRUE)\": \"0.60\", \"p(adversarial_dynamics_FALSE)\": \"0.40\"}, \"posteriors\": {\"p(adversarial_dynamics_TRUE|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(adversarial_dynamics_TRUE|misaligned_power_seeking_FALSE)\": \"0.10\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_FALSE)\": \"0.90\"}}\\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}}\\n[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"], \"priors\": {\"p(stakes_of_error_HIGH)\": \"0.85\", \"p(stakes_of_error_LOW)\": \"0.15\"}, \"posteriors\": {\"p(stakes_of_error_HIGH|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(stakes_of_error_HIGH|misaligned_power_seeking_FALSE)\": \"0.50\", \"p(stakes_of_error_LOW|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(stakes_of_error_LOW|misaligned_power_seeking_FALSE)\": \"0.50\"}}\\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}}\\n'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 34
        }
      ],
      "source": [
        "# read sprinkler example -- Occam Colab Online\n",
        "file_path_ex_rain = \"https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_carlsmith/BayesDown.md\"\n",
        "\n",
        "# Use requests.get to fetch content from URL\n",
        "response = requests.get(file_path_ex_rain)\n",
        "response.raise_for_status()  # Raise HTTPError for bad responses (4xx or 5xx)\n",
        "\n",
        "# Read content from the response\n",
        "md_content_ex_rain = response.text\n",
        "\n",
        "md_content_ex_rain"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "eUBJh8Qp4yd4"
      },
      "source": [
        "## 3.1.2 Test BayesDown Extraction\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JUQbvMLtDQiJ"
      },
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "xSGQt9Td6XI2",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "a859bf73-6cf1-4ce0-d4c0-4ff827584086"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.Markdown object>"
            ],
            "text/markdown": "[Existential_Catastrophe]: The destruction of humanity's long-term potential due to AI systems we've lost control over. {\"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"], \"priors\": {\"p(existential_catastrophe_TRUE)\": \"0.05\", \"p(existential_catastrophe_FALSE)\": \"0.95\"}, \"posteriors\": {\"p(existential_catastrophe_TRUE|human_disempowerment_TRUE)\": \"0.95\", \"p(existential_catastrophe_TRUE|human_disempowerment_FALSE)\": \"0.0\", \"p(existential_catastrophe_FALSE|human_disempowerment_TRUE)\": \"0.05\", \"p(existential_catastrophe_FALSE|human_disempowerment_FALSE)\": \"1.0\"}}\n- [Human_Disempowerment]: Permanent and collective disempowerment of humanity relative to AI systems. {\"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"], \"priors\": {\"p(human_disempowerment_TRUE)\": \"0.208\", \"p(human_disempowerment_FALSE)\": \"0.792\"}, \"posteriors\": {\"p(human_disempowerment_TRUE|scale_of_power_seeking_TRUE)\": \"1.0\", \"p(human_disempowerment_TRUE|scale_of_power_seeking_FALSE)\": \"0.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_TRUE)\": \"0.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_FALSE)\": \"1.0\"}}\n    - [Scale_Of_Power_Seeking]: Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity. {\"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"], \"priors\": {\"p(scale_of_power_seeking_TRUE)\": \"0.208\", \"p(scale_of_power_seeking_FALSE)\": \"0.792\"}, \"posteriors\": {\"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.25\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.60\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.75\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.40\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"1.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"1.0\"}}\n        - [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}, \"posteriors\": {\"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.90\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.10\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.25\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.05\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.10\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.90\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.75\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.95\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"1.0\"}}\n            - [APS_Systems]: AI systems with advanced capabilities, agentic planning, and strategic awareness. {\"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"], \"priors\": {\"p(aps_systems_TRUE)\": \"0.65\", \"p(aps_systems_FALSE)\": \"0.35\"}, \"posteriors\": {\"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\"}}\n                - [Advanced_AI_Capability]: AI systems that outperform humans on tasks that grant significant power in the world. {\"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"], \"priors\": {\"p(advanced_ai_capability_TRUE)\": \"0.80\", \"p(advanced_ai_capability_FALSE)\": \"0.20\"}}\n                - [Agentic_Planning]: AI systems making and executing plans based on world models to achieve objectives. {\"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"], \"priors\": {\"p(agentic_planning_TRUE)\": \"0.85\", \"p(agentic_planning_FALSE)\": \"0.15\"}}\n                - [Strategic_Awareness]: AI systems with models accurately representing power dynamics with humans. {\"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"], \"priors\": {\"p(strategic_awareness_TRUE)\": \"0.75\", \"p(strategic_awareness_FALSE)\": \"0.25\"}}\n            - [Difficulty_Of_Alignment]: It is harder to build aligned systems than misaligned systems that are attractive to deploy. {\"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"], \"priors\": {\"p(difficulty_of_alignment_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE)\": \"0.60\"}, \"posteriors\": {\"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.85\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.70\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.60\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.55\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.30\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.10\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.15\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.30\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.45\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.70\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.90\"}}\n                - [Instrumental_Convergence]: AI systems with misaligned objectives tend to seek power as an instrumental goal. {\"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"], \"priors\": {\"p(instrumental_convergence_TRUE)\": \"0.75\", \"p(instrumental_convergence_FALSE)\": \"0.25\"}}\n                - [Problems_With_Proxies]: Optimizing for proxy objectives breaks correlations with intended goals. {\"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"], \"priors\": {\"p(problems_with_proxies_TRUE)\": \"0.80\", \"p(problems_with_proxies_FALSE)\": \"0.20\"}}\n                - [Problems_With_Search]: Search processes can yield systems pursuing different objectives than intended. {\"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"], \"priors\": {\"p(problems_with_search_TRUE)\": \"0.70\", \"p(problems_with_search_FALSE)\": \"0.30\"}}\n            - [Deployment_Decisions]: Decisions to deploy potentially misaligned AI systems. {\"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"], \"priors\": {\"p(deployment_decisions_DEPLOY)\": \"0.70\", \"p(deployment_decisions_WITHHOLD)\": \"0.30\"}, \"posteriors\": {\"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.90\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.75\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.60\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.30\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.10\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.25\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.40\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.70\"}}\n                - [Incentives_To_Build_APS]: Strong incentives to build and deploy APS systems. {\"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"], \"priors\": {\"p(incentives_to_build_aps_STRONG)\": \"0.80\", \"p(incentives_to_build_aps_WEAK)\": \"0.20\"}, \"posteriors\": {\"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.95\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.80\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.70\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.05\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.20\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.70\"}}\n                    - [Usefulness_Of_APS]: APS systems are very useful for many valuable tasks. {\"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"], \"priors\": {\"p(usefulness_of_aps_HIGH)\": \"0.85\", \"p(usefulness_of_aps_LOW)\": \"0.15\"}}\n                    - [Competitive_Dynamics]: Competitive pressures between AI developers. {\"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"], \"priors\": {\"p(competitive_dynamics_STRONG)\": \"0.75\", \"p(competitive_dynamics_WEAK)\": \"0.25\"}}\n                - [Deception_By_AI]: AI systems deceiving humans about their true objectives. {\"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"], \"priors\": {\"p(deception_by_ai_TRUE)\": \"0.50\", \"p(deception_by_ai_FALSE)\": \"0.50\"}}\n        - [Corrective_Feedback]: Human society implementing corrections after observing problems. {\"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"], \"priors\": {\"p(corrective_feedback_EFFECTIVE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE)\": \"0.40\"}, \"posteriors\": {\"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.40\", \"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.80\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.15\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.20\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.85\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\"}}\n            - [Warning_Shots]: Observable failures in weaker systems before catastrophic risks. {\"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"], \"priors\": {\"p(warning_shots_OBSERVED)\": \"0.70\", \"p(warning_shots_UNOBSERVED)\": \"0.30\"}}\n            - [Rapid_Capability_Escalation]: AI capabilities escalating very rapidly, allowing little time for correction. {\"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"], \"priors\": {\"p(rapid_capability_escalation_TRUE)\": \"0.45\", \"p(rapid_capability_escalation_FALSE)\": \"0.55\"}}\n[Barriers_To_Understanding]: Difficulty in understanding the internal workings of advanced AI systems. {\"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"], \"priors\": {\"p(barriers_to_understanding_HIGH)\": \"0.70\", \"p(barriers_to_understanding_LOW)\": \"0.30\"}, \"posteriors\": {\"p(barriers_to_understanding_HIGH|misaligned_power_seeking_TRUE)\": \"0.85\", \"p(barriers_to_understanding_HIGH|misaligned_power_seeking_FALSE)\": \"0.60\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_TRUE)\": \"0.15\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_FALSE)\": \"0.40\"}}\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}}\n[Adversarial_Dynamics]: Potentially adversarial relationships between humans and power-seeking AI. {\"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"], \"priors\": {\"p(adversarial_dynamics_TRUE)\": \"0.60\", \"p(adversarial_dynamics_FALSE)\": \"0.40\"}, \"posteriors\": {\"p(adversarial_dynamics_TRUE|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(adversarial_dynamics_TRUE|misaligned_power_seeking_FALSE)\": \"0.10\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_FALSE)\": \"0.90\"}}\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}}\n[Stakes_Of_Error]: The escalating impact of mistakes with power-seeking AI systems. {\"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"], \"priors\": {\"p(stakes_of_error_HIGH)\": \"0.85\", \"p(stakes_of_error_LOW)\": \"0.15\"}, \"posteriors\": {\"p(stakes_of_error_HIGH|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(stakes_of_error_HIGH|misaligned_power_seeking_FALSE)\": \"0.50\", \"p(stakes_of_error_LOW|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(stakes_of_error_LOW|misaligned_power_seeking_FALSE)\": \"0.50\"}}\n- [Misaligned_Power_Seeking]: Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives. {\"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\"}}\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "display(Markdown(md_content_ex_rain)) # view BayesDown file formatted as MarkDown"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "z4Hgs0ICDQyW"
      },
      "source": [
        "## 3.1.2.2 Check the Graph Structure with the ArgDown Sandbox Online\n",
        "Copy and paste the BayesDown formatted ... in the ArgDown Sandbox below to quickly verify that the network renders correctly."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "mv8f4c4D3yJj"
      },
      "source": [
        "## 3.3 Extraction\n",
        "BayesDown Extraction Code already part of ArgDown extraction code, therefore just use same function \"parse_markdown_hierarchy(markdown_data)\" and ignore the extra argument (\"ArgDown\") because it is automatically set to false amd will by default extract BayesDown."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "hmoEC7JaHFVn",
        "outputId": "515f7e7f-c291-4d26-a515-b3d8c27d0952",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                          Title  \\\n",
              "0       Existential_Catastrophe   \n",
              "1          Human_Disempowerment   \n",
              "2        Scale_Of_Power_Seeking   \n",
              "3      Misaligned_Power_Seeking   \n",
              "4                   APS_Systems   \n",
              "5        Advanced_AI_Capability   \n",
              "6              Agentic_Planning   \n",
              "7           Strategic_Awareness   \n",
              "8       Difficulty_Of_Alignment   \n",
              "9      Instrumental_Convergence   \n",
              "10        Problems_With_Proxies   \n",
              "11         Problems_With_Search   \n",
              "12         Deployment_Decisions   \n",
              "13      Incentives_To_Build_APS   \n",
              "14            Usefulness_Of_APS   \n",
              "15         Competitive_Dynamics   \n",
              "16              Deception_By_AI   \n",
              "17          Corrective_Feedback   \n",
              "18                Warning_Shots   \n",
              "19  Rapid_Capability_Escalation   \n",
              "20    Barriers_To_Understanding   \n",
              "21         Adversarial_Dynamics   \n",
              "22              Stakes_Of_Error   \n",
              "\n",
              "                                          Description  line     line_numbers  \\\n",
              "0   The destruction of humanity's long-term potent...     0              [0]   \n",
              "1   Permanent and collective disempowerment of hum...     1              [1]   \n",
              "2   Power-seeking by AI systems scaling to the poi...     2              [2]   \n",
              "3   Deployed AI systems seeking power in unintende...     3  [3, 21, 23, 25]   \n",
              "4   AI systems with advanced capabilities, agentic...     4              [4]   \n",
              "5   AI systems that outperform humans on tasks tha...     5              [5]   \n",
              "6   AI systems making and executing plans based on...     6              [6]   \n",
              "7   AI systems with models accurately representing...     7              [7]   \n",
              "8   It is harder to build aligned systems than mis...     8              [8]   \n",
              "9   AI systems with misaligned objectives tend to ...     9              [9]   \n",
              "10  Optimizing for proxy objectives breaks correla...    10             [10]   \n",
              "11  Search processes can yield systems pursuing di...    11             [11]   \n",
              "12  Decisions to deploy potentially misaligned AI ...    12             [12]   \n",
              "13  Strong incentives to build and deploy APS syst...    13             [13]   \n",
              "14  APS systems are very useful for many valuable ...    14             [14]   \n",
              "15       Competitive pressures between AI developers.    15             [15]   \n",
              "16  AI systems deceiving humans about their true o...    16             [16]   \n",
              "17  Human society implementing corrections after o...    17             [17]   \n",
              "18  Observable failures in weaker systems before c...    18             [18]   \n",
              "19  AI capabilities escalating very rapidly, allow...    19             [19]   \n",
              "20  Difficulty in understanding the internal worki...    20             [20]   \n",
              "21  Potentially adversarial relationships between ...    22             [22]   \n",
              "22  The escalating impact of mistakes with power-s...    24             [24]   \n",
              "\n",
              "    indentation indentation_levels  \\\n",
              "0             0                [0]   \n",
              "1             0                [0]   \n",
              "2             4                [4]   \n",
              "3             8       [8, 0, 0, 0]   \n",
              "4            12               [12]   \n",
              "5            16               [16]   \n",
              "6            16               [16]   \n",
              "7            16               [16]   \n",
              "8            12               [12]   \n",
              "9            16               [16]   \n",
              "10           16               [16]   \n",
              "11           16               [16]   \n",
              "12           12               [12]   \n",
              "13           16               [16]   \n",
              "14           20               [20]   \n",
              "15           20               [20]   \n",
              "16           16               [16]   \n",
              "17            8                [8]   \n",
              "18           12               [12]   \n",
              "19           12               [12]   \n",
              "20            0                [0]   \n",
              "21            0                [0]   \n",
              "22            0                [0]   \n",
              "\n",
              "                                              Parents  \\\n",
              "0                                                  []   \n",
              "1                            [Scale_Of_Power_Seeking]   \n",
              "2     [Misaligned_Power_Seeking, Corrective_Feedback]   \n",
              "3   [APS_Systems, Difficulty_Of_Alignment, Deploym...   \n",
              "4   [Advanced_AI_Capability, Agentic_Planning, Str...   \n",
              "5                                                  []   \n",
              "6                                                  []   \n",
              "7                                                  []   \n",
              "8   [Instrumental_Convergence, Problems_With_Proxi...   \n",
              "9                                                  []   \n",
              "10                                                 []   \n",
              "11                                                 []   \n",
              "12         [Incentives_To_Build_APS, Deception_By_AI]   \n",
              "13          [Usefulness_Of_APS, Competitive_Dynamics]   \n",
              "14                                                 []   \n",
              "15                                                 []   \n",
              "16                                                 []   \n",
              "17       [Warning_Shots, Rapid_Capability_Escalation]   \n",
              "18                                                 []   \n",
              "19                                                 []   \n",
              "20                                                 []   \n",
              "21                                                 []   \n",
              "22                                                 []   \n",
              "\n",
              "                      Children  \\\n",
              "0                           []   \n",
              "1                           []   \n",
              "2       [Human_Disempowerment]   \n",
              "3     [Scale_Of_Power_Seeking]   \n",
              "4   [Misaligned_Power_Seeking]   \n",
              "5                [APS_Systems]   \n",
              "6                [APS_Systems]   \n",
              "7                [APS_Systems]   \n",
              "8   [Misaligned_Power_Seeking]   \n",
              "9    [Difficulty_Of_Alignment]   \n",
              "10   [Difficulty_Of_Alignment]   \n",
              "11   [Difficulty_Of_Alignment]   \n",
              "12  [Misaligned_Power_Seeking]   \n",
              "13      [Deployment_Decisions]   \n",
              "14   [Incentives_To_Build_APS]   \n",
              "15   [Incentives_To_Build_APS]   \n",
              "16      [Deployment_Decisions]   \n",
              "17    [Scale_Of_Power_Seeking]   \n",
              "18       [Corrective_Feedback]   \n",
              "19       [Corrective_Feedback]   \n",
              "20                          []   \n",
              "21                          []   \n",
              "22                          []   \n",
              "\n",
              "                                       instantiations  \\\n",
              "0   [existential_catastrophe_TRUE, existential_cat...   \n",
              "1   [human_disempowerment_TRUE, human_disempowerme...   \n",
              "2   [scale_of_power_seeking_TRUE, scale_of_power_s...   \n",
              "3   [misaligned_power_seeking_TRUE, misaligned_pow...   \n",
              "4               [aps_systems_TRUE, aps_systems_FALSE]   \n",
              "5   [advanced_ai_capability_TRUE, advanced_ai_capa...   \n",
              "6     [agentic_planning_TRUE, agentic_planning_FALSE]   \n",
              "7   [strategic_awareness_TRUE, strategic_awareness...   \n",
              "8   [difficulty_of_alignment_TRUE, difficulty_of_a...   \n",
              "9   [instrumental_convergence_TRUE, instrumental_c...   \n",
              "10  [problems_with_proxies_TRUE, problems_with_pro...   \n",
              "11  [problems_with_search_TRUE, problems_with_sear...   \n",
              "12  [deployment_decisions_DEPLOY, deployment_decis...   \n",
              "13  [incentives_to_build_aps_STRONG, incentives_to...   \n",
              "14    [usefulness_of_aps_HIGH, usefulness_of_aps_LOW]   \n",
              "15  [competitive_dynamics_STRONG, competitive_dyna...   \n",
              "16      [deception_by_ai_TRUE, deception_by_ai_FALSE]   \n",
              "17  [corrective_feedback_EFFECTIVE, corrective_fee...   \n",
              "18  [warning_shots_OBSERVED, warning_shots_UNOBSER...   \n",
              "19  [rapid_capability_escalation_TRUE, rapid_capab...   \n",
              "20  [barriers_to_understanding_HIGH, barriers_to_u...   \n",
              "21  [adversarial_dynamics_TRUE, adversarial_dynami...   \n",
              "22        [stakes_of_error_HIGH, stakes_of_error_LOW]   \n",
              "\n",
              "                                               priors  \\\n",
              "0   {'p(existential_catastrophe_TRUE)': '0.05', 'p...   \n",
              "1   {'p(human_disempowerment_TRUE)': '0.208', 'p(h...   \n",
              "2   {'p(scale_of_power_seeking_TRUE)': '0.208', 'p...   \n",
              "3   {'p(misaligned_power_seeking_TRUE)': '0.338', ...   \n",
              "4   {'p(aps_systems_TRUE)': '0.65', 'p(aps_systems...   \n",
              "5   {'p(advanced_ai_capability_TRUE)': '0.80', 'p(...   \n",
              "6   {'p(agentic_planning_TRUE)': '0.85', 'p(agenti...   \n",
              "7   {'p(strategic_awareness_TRUE)': '0.75', 'p(str...   \n",
              "8   {'p(difficulty_of_alignment_TRUE)': '0.40', 'p...   \n",
              "9   {'p(instrumental_convergence_TRUE)': '0.75', '...   \n",
              "10  {'p(problems_with_proxies_TRUE)': '0.80', 'p(p...   \n",
              "11  {'p(problems_with_search_TRUE)': '0.70', 'p(pr...   \n",
              "12  {'p(deployment_decisions_DEPLOY)': '0.70', 'p(...   \n",
              "13  {'p(incentives_to_build_aps_STRONG)': '0.80', ...   \n",
              "14  {'p(usefulness_of_aps_HIGH)': '0.85', 'p(usefu...   \n",
              "15  {'p(competitive_dynamics_STRONG)': '0.75', 'p(...   \n",
              "16  {'p(deception_by_ai_TRUE)': '0.50', 'p(decepti...   \n",
              "17  {'p(corrective_feedback_EFFECTIVE)': '0.60', '...   \n",
              "18  {'p(warning_shots_OBSERVED)': '0.70', 'p(warni...   \n",
              "19  {'p(rapid_capability_escalation_TRUE)': '0.45'...   \n",
              "20  {'p(barriers_to_understanding_HIGH)': '0.70', ...   \n",
              "21  {'p(adversarial_dynamics_TRUE)': '0.60', 'p(ad...   \n",
              "22  {'p(stakes_of_error_HIGH)': '0.85', 'p(stakes_...   \n",
              "\n",
              "                                           posteriors  No_Parent  No_Children  \\\n",
              "0   {'p(existential_catastrophe_TRUE|human_disempo...       True         True   \n",
              "1   {'p(human_disempowerment_TRUE|scale_of_power_s...      False         True   \n",
              "2   {'p(scale_of_power_seeking_TRUE|misaligned_pow...      False        False   \n",
              "3   {'p(misaligned_power_seeking_TRUE|aps_systems_...      False        False   \n",
              "4   {'p(aps_systems_TRUE|advanced_ai_capability_TR...      False        False   \n",
              "5                                                  {}       True        False   \n",
              "6                                                  {}       True        False   \n",
              "7                                                  {}       True        False   \n",
              "8   {'p(difficulty_of_alignment_TRUE|instrumental_...      False        False   \n",
              "9                                                  {}       True        False   \n",
              "10                                                 {}       True        False   \n",
              "11                                                 {}       True        False   \n",
              "12  {'p(deployment_decisions_DEPLOY|incentives_to_...      False        False   \n",
              "13  {'p(incentives_to_build_aps_STRONG|usefulness_...      False        False   \n",
              "14                                                 {}       True        False   \n",
              "15                                                 {}       True        False   \n",
              "16                                                 {}       True        False   \n",
              "17  {'p(corrective_feedback_EFFECTIVE|warning_shot...      False        False   \n",
              "18                                                 {}       True        False   \n",
              "19                                                 {}       True        False   \n",
              "20  {'p(barriers_to_understanding_HIGH|misaligned_...       True         True   \n",
              "21  {'p(adversarial_dynamics_TRUE|misaligned_power...       True         True   \n",
              "22  {'p(stakes_of_error_HIGH|misaligned_power_seek...       True         True   \n",
              "\n",
              "                                parent_instantiations  \n",
              "0                                                  []  \n",
              "1   [[scale_of_power_seeking_TRUE, scale_of_power_...  \n",
              "2   [[misaligned_power_seeking_TRUE, misaligned_po...  \n",
              "3   [[aps_systems_TRUE, aps_systems_FALSE], [diffi...  \n",
              "4   [[advanced_ai_capability_TRUE, advanced_ai_cap...  \n",
              "5                                                  []  \n",
              "6                                                  []  \n",
              "7                                                  []  \n",
              "8   [[instrumental_convergence_TRUE, instrumental_...  \n",
              "9                                                  []  \n",
              "10                                                 []  \n",
              "11                                                 []  \n",
              "12  [[incentives_to_build_aps_STRONG, incentives_t...  \n",
              "13  [[usefulness_of_aps_HIGH, usefulness_of_aps_LO...  \n",
              "14                                                 []  \n",
              "15                                                 []  \n",
              "16                                                 []  \n",
              "17  [[warning_shots_OBSERVED, warning_shots_UNOBSE...  \n",
              "18                                                 []  \n",
              "19                                                 []  \n",
              "20                                                 []  \n",
              "21                                                 []  \n",
              "22                                                 []  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-5d612629-5d59-46d5-83da-3b1655374873\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Title</th>\n",
              "      <th>Description</th>\n",
              "      <th>line</th>\n",
              "      <th>line_numbers</th>\n",
              "      <th>indentation</th>\n",
              "      <th>indentation_levels</th>\n",
              "      <th>Parents</th>\n",
              "      <th>Children</th>\n",
              "      <th>instantiations</th>\n",
              "      <th>priors</th>\n",
              "      <th>posteriors</th>\n",
              "      <th>No_Parent</th>\n",
              "      <th>No_Children</th>\n",
              "      <th>parent_instantiations</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>Existential_Catastrophe</td>\n",
              "      <td>The destruction of humanity's long-term potent...</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[existential_catastrophe_TRUE, existential_cat...</td>\n",
              "      <td>{'p(existential_catastrophe_TRUE)': '0.05', 'p...</td>\n",
              "      <td>{'p(existential_catastrophe_TRUE|human_disempo...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>Human_Disempowerment</td>\n",
              "      <td>Permanent and collective disempowerment of hum...</td>\n",
              "      <td>1</td>\n",
              "      <td>[1]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[Scale_Of_Power_Seeking]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[human_disempowerment_TRUE, human_disempowerme...</td>\n",
              "      <td>{'p(human_disempowerment_TRUE)': '0.208', 'p(h...</td>\n",
              "      <td>{'p(human_disempowerment_TRUE|scale_of_power_s...</td>\n",
              "      <td>False</td>\n",
              "      <td>True</td>\n",
              "      <td>[[scale_of_power_seeking_TRUE, scale_of_power_...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>Scale_Of_Power_Seeking</td>\n",
              "      <td>Power-seeking by AI systems scaling to the poi...</td>\n",
              "      <td>2</td>\n",
              "      <td>[2]</td>\n",
              "      <td>4</td>\n",
              "      <td>[4]</td>\n",
              "      <td>[Misaligned_Power_Seeking, Corrective_Feedback]</td>\n",
              "      <td>[Human_Disempowerment]</td>\n",
              "      <td>[scale_of_power_seeking_TRUE, scale_of_power_s...</td>\n",
              "      <td>{'p(scale_of_power_seeking_TRUE)': '0.208', 'p...</td>\n",
              "      <td>{'p(scale_of_power_seeking_TRUE|misaligned_pow...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[misaligned_power_seeking_TRUE, misaligned_po...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>Misaligned_Power_Seeking</td>\n",
              "      <td>Deployed AI systems seeking power in unintende...</td>\n",
              "      <td>3</td>\n",
              "      <td>[3, 21, 23, 25]</td>\n",
              "      <td>8</td>\n",
              "      <td>[8, 0, 0, 0]</td>\n",
              "      <td>[APS_Systems, Difficulty_Of_Alignment, Deploym...</td>\n",
              "      <td>[Scale_Of_Power_Seeking]</td>\n",
              "      <td>[misaligned_power_seeking_TRUE, misaligned_pow...</td>\n",
              "      <td>{'p(misaligned_power_seeking_TRUE)': '0.338', ...</td>\n",
              "      <td>{'p(misaligned_power_seeking_TRUE|aps_systems_...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[aps_systems_TRUE, aps_systems_FALSE], [diffi...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>APS_Systems</td>\n",
              "      <td>AI systems with advanced capabilities, agentic...</td>\n",
              "      <td>4</td>\n",
              "      <td>[4]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[Advanced_AI_Capability, Agentic_Planning, Str...</td>\n",
              "      <td>[Misaligned_Power_Seeking]</td>\n",
              "      <td>[aps_systems_TRUE, aps_systems_FALSE]</td>\n",
              "      <td>{'p(aps_systems_TRUE)': '0.65', 'p(aps_systems...</td>\n",
              "      <td>{'p(aps_systems_TRUE|advanced_ai_capability_TR...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[advanced_ai_capability_TRUE, advanced_ai_cap...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>Advanced_AI_Capability</td>\n",
              "      <td>AI systems that outperform humans on tasks tha...</td>\n",
              "      <td>5</td>\n",
              "      <td>[5]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[APS_Systems]</td>\n",
              "      <td>[advanced_ai_capability_TRUE, advanced_ai_capa...</td>\n",
              "      <td>{'p(advanced_ai_capability_TRUE)': '0.80', 'p(...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>Agentic_Planning</td>\n",
              "      <td>AI systems making and executing plans based on...</td>\n",
              "      <td>6</td>\n",
              "      <td>[6]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[APS_Systems]</td>\n",
              "      <td>[agentic_planning_TRUE, agentic_planning_FALSE]</td>\n",
              "      <td>{'p(agentic_planning_TRUE)': '0.85', 'p(agenti...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>Strategic_Awareness</td>\n",
              "      <td>AI systems with models accurately representing...</td>\n",
              "      <td>7</td>\n",
              "      <td>[7]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[APS_Systems]</td>\n",
              "      <td>[strategic_awareness_TRUE, strategic_awareness...</td>\n",
              "      <td>{'p(strategic_awareness_TRUE)': '0.75', 'p(str...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>Difficulty_Of_Alignment</td>\n",
              "      <td>It is harder to build aligned systems than mis...</td>\n",
              "      <td>8</td>\n",
              "      <td>[8]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[Instrumental_Convergence, Problems_With_Proxi...</td>\n",
              "      <td>[Misaligned_Power_Seeking]</td>\n",
              "      <td>[difficulty_of_alignment_TRUE, difficulty_of_a...</td>\n",
              "      <td>{'p(difficulty_of_alignment_TRUE)': '0.40', 'p...</td>\n",
              "      <td>{'p(difficulty_of_alignment_TRUE|instrumental_...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[instrumental_convergence_TRUE, instrumental_...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>Instrumental_Convergence</td>\n",
              "      <td>AI systems with misaligned objectives tend to ...</td>\n",
              "      <td>9</td>\n",
              "      <td>[9]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Difficulty_Of_Alignment]</td>\n",
              "      <td>[instrumental_convergence_TRUE, instrumental_c...</td>\n",
              "      <td>{'p(instrumental_convergence_TRUE)': '0.75', '...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>Problems_With_Proxies</td>\n",
              "      <td>Optimizing for proxy objectives breaks correla...</td>\n",
              "      <td>10</td>\n",
              "      <td>[10]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Difficulty_Of_Alignment]</td>\n",
              "      <td>[problems_with_proxies_TRUE, problems_with_pro...</td>\n",
              "      <td>{'p(problems_with_proxies_TRUE)': '0.80', 'p(p...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>Problems_With_Search</td>\n",
              "      <td>Search processes can yield systems pursuing di...</td>\n",
              "      <td>11</td>\n",
              "      <td>[11]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Difficulty_Of_Alignment]</td>\n",
              "      <td>[problems_with_search_TRUE, problems_with_sear...</td>\n",
              "      <td>{'p(problems_with_search_TRUE)': '0.70', 'p(pr...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>Deployment_Decisions</td>\n",
              "      <td>Decisions to deploy potentially misaligned AI ...</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[Incentives_To_Build_APS, Deception_By_AI]</td>\n",
              "      <td>[Misaligned_Power_Seeking]</td>\n",
              "      <td>[deployment_decisions_DEPLOY, deployment_decis...</td>\n",
              "      <td>{'p(deployment_decisions_DEPLOY)': '0.70', 'p(...</td>\n",
              "      <td>{'p(deployment_decisions_DEPLOY|incentives_to_...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[incentives_to_build_aps_STRONG, incentives_t...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>Incentives_To_Build_APS</td>\n",
              "      <td>Strong incentives to build and deploy APS syst...</td>\n",
              "      <td>13</td>\n",
              "      <td>[13]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[Usefulness_Of_APS, Competitive_Dynamics]</td>\n",
              "      <td>[Deployment_Decisions]</td>\n",
              "      <td>[incentives_to_build_aps_STRONG, incentives_to...</td>\n",
              "      <td>{'p(incentives_to_build_aps_STRONG)': '0.80', ...</td>\n",
              "      <td>{'p(incentives_to_build_aps_STRONG|usefulness_...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[usefulness_of_aps_HIGH, usefulness_of_aps_LO...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>Usefulness_Of_APS</td>\n",
              "      <td>APS systems are very useful for many valuable ...</td>\n",
              "      <td>14</td>\n",
              "      <td>[14]</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Incentives_To_Build_APS]</td>\n",
              "      <td>[usefulness_of_aps_HIGH, usefulness_of_aps_LOW]</td>\n",
              "      <td>{'p(usefulness_of_aps_HIGH)': '0.85', 'p(usefu...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>Competitive_Dynamics</td>\n",
              "      <td>Competitive pressures between AI developers.</td>\n",
              "      <td>15</td>\n",
              "      <td>[15]</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Incentives_To_Build_APS]</td>\n",
              "      <td>[competitive_dynamics_STRONG, competitive_dyna...</td>\n",
              "      <td>{'p(competitive_dynamics_STRONG)': '0.75', 'p(...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>Deception_By_AI</td>\n",
              "      <td>AI systems deceiving humans about their true o...</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>16</td>\n",
              "      <td>[16]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Deployment_Decisions]</td>\n",
              "      <td>[deception_by_ai_TRUE, deception_by_ai_FALSE]</td>\n",
              "      <td>{'p(deception_by_ai_TRUE)': '0.50', 'p(decepti...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>Corrective_Feedback</td>\n",
              "      <td>Human society implementing corrections after o...</td>\n",
              "      <td>17</td>\n",
              "      <td>[17]</td>\n",
              "      <td>8</td>\n",
              "      <td>[8]</td>\n",
              "      <td>[Warning_Shots, Rapid_Capability_Escalation]</td>\n",
              "      <td>[Scale_Of_Power_Seeking]</td>\n",
              "      <td>[corrective_feedback_EFFECTIVE, corrective_fee...</td>\n",
              "      <td>{'p(corrective_feedback_EFFECTIVE)': '0.60', '...</td>\n",
              "      <td>{'p(corrective_feedback_EFFECTIVE|warning_shot...</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>[[warning_shots_OBSERVED, warning_shots_UNOBSE...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>Warning_Shots</td>\n",
              "      <td>Observable failures in weaker systems before c...</td>\n",
              "      <td>18</td>\n",
              "      <td>[18]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Corrective_Feedback]</td>\n",
              "      <td>[warning_shots_OBSERVED, warning_shots_UNOBSER...</td>\n",
              "      <td>{'p(warning_shots_OBSERVED)': '0.70', 'p(warni...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>Rapid_Capability_Escalation</td>\n",
              "      <td>AI capabilities escalating very rapidly, allow...</td>\n",
              "      <td>19</td>\n",
              "      <td>[19]</td>\n",
              "      <td>12</td>\n",
              "      <td>[12]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[Corrective_Feedback]</td>\n",
              "      <td>[rapid_capability_escalation_TRUE, rapid_capab...</td>\n",
              "      <td>{'p(rapid_capability_escalation_TRUE)': '0.45'...</td>\n",
              "      <td>{}</td>\n",
              "      <td>True</td>\n",
              "      <td>False</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>20</th>\n",
              "      <td>Barriers_To_Understanding</td>\n",
              "      <td>Difficulty in understanding the internal worki...</td>\n",
              "      <td>20</td>\n",
              "      <td>[20]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[barriers_to_understanding_HIGH, barriers_to_u...</td>\n",
              "      <td>{'p(barriers_to_understanding_HIGH)': '0.70', ...</td>\n",
              "      <td>{'p(barriers_to_understanding_HIGH|misaligned_...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>Adversarial_Dynamics</td>\n",
              "      <td>Potentially adversarial relationships between ...</td>\n",
              "      <td>22</td>\n",
              "      <td>[22]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[adversarial_dynamics_TRUE, adversarial_dynami...</td>\n",
              "      <td>{'p(adversarial_dynamics_TRUE)': '0.60', 'p(ad...</td>\n",
              "      <td>{'p(adversarial_dynamics_TRUE|misaligned_power...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>22</th>\n",
              "      <td>Stakes_Of_Error</td>\n",
              "      <td>The escalating impact of mistakes with power-s...</td>\n",
              "      <td>24</td>\n",
              "      <td>[24]</td>\n",
              "      <td>0</td>\n",
              "      <td>[0]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[]</td>\n",
              "      <td>[stakes_of_error_HIGH, stakes_of_error_LOW]</td>\n",
              "      <td>{'p(stakes_of_error_HIGH)': '0.85', 'p(stakes_...</td>\n",
              "      <td>{'p(stakes_of_error_HIGH|misaligned_power_seek...</td>\n",
              "      <td>True</td>\n",
              "      <td>True</td>\n",
              "      <td>[]</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5d612629-5d59-46d5-83da-3b1655374873')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-5d612629-5d59-46d5-83da-3b1655374873 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-5d612629-5d59-46d5-83da-3b1655374873');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    <div id=\"df-a250fd1f-3ae9-4228-af89-ece8d7b6b4ba\">\n",
              "      <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a250fd1f-3ae9-4228-af89-ece8d7b6b4ba')\"\n",
              "                title=\"Suggest charts\"\n",
              "                style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "      </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "      <script>\n",
              "        async function quickchart(key) {\n",
              "          const quickchartButtonEl =\n",
              "            document.querySelector('#' + key + ' button');\n",
              "          quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "          quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "          try {\n",
              "            const charts = await google.colab.kernel.invokeFunction(\n",
              "                'suggestCharts', [key], {});\n",
              "          } catch (error) {\n",
              "            console.error('Error during call to suggestCharts:', error);\n",
              "          }\n",
              "          quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "          quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "        }\n",
              "        (() => {\n",
              "          let quickchartButtonEl =\n",
              "            document.querySelector('#df-a250fd1f-3ae9-4228-af89-ece8d7b6b4ba button');\n",
              "          quickchartButtonEl.style.display =\n",
              "            google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "        })();\n",
              "      </script>\n",
              "    </div>\n",
              "\n",
              "  <div id=\"id_7742e5c7-c1be-4dba-888a-5ba16cfc6364\">\n",
              "    <style>\n",
              "      .colab-df-generate {\n",
              "        background-color: #E8F0FE;\n",
              "        border: none;\n",
              "        border-radius: 50%;\n",
              "        cursor: pointer;\n",
              "        display: none;\n",
              "        fill: #1967D2;\n",
              "        height: 32px;\n",
              "        padding: 0 0 0 0;\n",
              "        width: 32px;\n",
              "      }\n",
              "\n",
              "      .colab-df-generate:hover {\n",
              "        background-color: #E2EBFA;\n",
              "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "        fill: #174EA6;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate {\n",
              "        background-color: #3B4455;\n",
              "        fill: #D2E3FC;\n",
              "      }\n",
              "\n",
              "      [theme=dark] .colab-df-generate:hover {\n",
              "        background-color: #434B5C;\n",
              "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "        fill: #FFFFFF;\n",
              "      }\n",
              "    </style>\n",
              "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('result_df')\"\n",
              "            title=\"Generate code using this dataframe.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "    <script>\n",
              "      (() => {\n",
              "      const buttonEl =\n",
              "        document.querySelector('#id_7742e5c7-c1be-4dba-888a-5ba16cfc6364 button.colab-df-generate');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      buttonEl.onclick = () => {\n",
              "        google.colab.notebook.generateWithVariable('result_df');\n",
              "      }\n",
              "      })();\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "result_df",
              "summary": "{\n  \"name\": \"result_df\",\n  \"rows\": 23,\n  \"fields\": [\n    {\n      \"column\": \"Title\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"Competitive_Dynamics\",\n          \"Instrumental_Convergence\",\n          \"Existential_Catastrophe\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Description\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 23,\n        \"samples\": [\n          \"Competitive pressures between AI developers.\",\n          \"AI systems with misaligned objectives tend to seek power as an instrumental goal.\",\n          \"The destruction of humanity's long-term potential due to AI systems we've lost control over.\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"line\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7,\n        \"min\": 0,\n        \"max\": 24,\n        \"num_unique_values\": 23,\n        \"samples\": [\n          15,\n          9,\n          0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"line_numbers\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"indentation\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 6,\n        \"min\": 0,\n        \"max\": 20,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0,\n          4,\n          20\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"indentation_levels\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Parents\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Children\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"instantiations\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"priors\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"posteriors\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"No_Parent\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"No_Children\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"parent_instantiations\",\n      \"properties\": {\n        \"dtype\": \"object\",\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 36
        }
      ],
      "source": [
        "result_df = parse_markdown_hierarchy_fixed(md_content_ex_rain)\n",
        "result_df"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "UcXf3fZ8dahj"
      },
      "source": [
        "### 3.3 Data-Post-Processing\n",
        "Add rows to data frame that can be calculated from the extracted rows"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 3.3.1 Data Post-Processing Functions ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Enhances the extracted BayesDown data with calculated metrics and network properties.\n",
        "\n",
        "This block provides functions to enrich the basic extracted data with additional\n",
        "calculated columns that are useful for analysis and visualization:\n",
        "\n",
        "1. Joint probabilities - Calculating P(A,B) from conditional and prior probabilities\n",
        "2. Network metrics - Centrality measures that indicate importance of nodes in the network\n",
        "3. Markov blanket - Identifying the minimal set of nodes that shield a node from the rest\n",
        "\n",
        "These enhancements provide valuable context for understanding the network structure\n",
        "and the relationships between variables, enabling more advanced analysis and\n",
        "improving visualization.\n",
        "\n",
        "DEPENDENCIES: networkx for graph calculations\n",
        "INPUTS: DataFrame with basic extracted BayesDown data\n",
        "OUTPUTS: Enhanced DataFrame with additional calculated columns\n",
        "\"\"\"\n",
        "\n",
        "def enhance_extracted_data(df):\n",
        "    \"\"\"\n",
        "    Enhance the extracted data with calculated columns\n",
        "\n",
        "    Args:\n",
        "        df: DataFrame with extracted BayesDown data\n",
        "\n",
        "    Returns:\n",
        "        Enhanced DataFrame with additional columns\n",
        "    \"\"\"\n",
        "    # Create a copy to avoid modifying the original\n",
        "    enhanced_df = df.copy()\n",
        "\n",
        "    # 1. Calculate joint probabilities - P(A,B) = P(A|B) * P(B)\n",
        "    enhanced_df['joint_probabilities'] = None\n",
        "\n",
        "    for idx, row in enhanced_df.iterrows():\n",
        "        title = row['Title']\n",
        "        priors = row['priors'] if isinstance(row['priors'], dict) else {}\n",
        "        posteriors = row['posteriors'] if isinstance(row['posteriors'], dict) else {}\n",
        "        parents = row['Parents'] if isinstance(row['Parents'], list) else []\n",
        "\n",
        "        # Skip if no parents or no priors\n",
        "        if not parents or not priors:\n",
        "            continue\n",
        "\n",
        "        # Initialize joint probabilities dictionary\n",
        "        joint_probs = {}\n",
        "\n",
        "        # Get instantiations\n",
        "        instantiations = row['instantiations']\n",
        "        if not isinstance(instantiations, list) or not instantiations:\n",
        "            continue\n",
        "\n",
        "        # For each parent and child instantiation combination, calculate joint probability\n",
        "        for inst in instantiations:\n",
        "            # Get this instantiation's prior probability\n",
        "            inst_prior_key = f\"p({inst})\"\n",
        "            if inst_prior_key not in priors:\n",
        "                continue\n",
        "\n",
        "            try:\n",
        "                inst_prior = float(priors[inst_prior_key])\n",
        "            except (ValueError, TypeError):\n",
        "                continue\n",
        "\n",
        "            # For each parent\n",
        "            for parent in parents:\n",
        "                parent_row = enhanced_df[enhanced_df['Title'] == parent]\n",
        "                if parent_row.empty:\n",
        "                    continue\n",
        "\n",
        "                parent_insts = parent_row.iloc[0]['instantiations']\n",
        "                if not isinstance(parent_insts, list) or not parent_insts:\n",
        "                    continue\n",
        "\n",
        "                for parent_inst in parent_insts:\n",
        "                    # Get conditional probability\n",
        "                    cond_key = f\"p({inst}|{parent}={parent_inst})\"\n",
        "                    if cond_key in posteriors:\n",
        "                        try:\n",
        "                            cond_prob = float(posteriors[cond_key])\n",
        "\n",
        "                            # Get parent's prior\n",
        "                            parent_priors = parent_row.iloc[0]['priors']\n",
        "                            if not isinstance(parent_priors, dict):\n",
        "                                continue\n",
        "\n",
        "                            parent_prior_key = f\"p({parent_inst})\"\n",
        "                            if parent_prior_key not in parent_priors:\n",
        "                                continue\n",
        "\n",
        "                            try:\n",
        "                                parent_prior = float(parent_priors[parent_prior_key])\n",
        "\n",
        "                                # Calculate joint probability: P(A,B) = P(A|B) * P(B)\n",
        "                                joint_prob = cond_prob * parent_prior\n",
        "                                joint_key = f\"p({inst},{parent}={parent_inst})\"\n",
        "                                joint_probs[joint_key] = str(round(joint_prob, 4))\n",
        "                            except (ValueError, TypeError):\n",
        "                                joint_prob = cond_prob * parent_prior\n",
        "                                joint_key = f\"p({inst},{parent}={parent_inst})\"\n",
        "                                joint_probs[joint_key] = str(round(joint_prob, 4))\n",
        "                            except (ValueError, TypeError):\n",
        "                                continue\n",
        "                        except (ValueError, TypeError):\n",
        "                            continue\n",
        "\n",
        "        # Store joint probabilities in dataframe\n",
        "        enhanced_df.at[idx, 'joint_probabilities'] = joint_probs\n",
        "\n",
        "    # 2. Calculate network metrics\n",
        "    # Create a directed graph\n",
        "    import networkx as nx\n",
        "    G = nx.DiGraph()\n",
        "\n",
        "    # Add nodes\n",
        "    for idx, row in enhanced_df.iterrows():\n",
        "        G.add_node(row['Title'])\n",
        "\n",
        "    # Add edges\n",
        "    for idx, row in enhanced_df.iterrows():\n",
        "        child = row['Title']\n",
        "        parents = row['Parents'] if isinstance(row['Parents'], list) else []\n",
        "\n",
        "        for parent in parents:\n",
        "            if parent in G.nodes():\n",
        "                G.add_edge(parent, child)\n",
        "\n",
        "    # Calculate centrality measures\n",
        "    degree_centrality = nx.degree_centrality(G)  # Overall connectedness\n",
        "    in_degree_centrality = nx.in_degree_centrality(G)  # How many nodes affect this one\n",
        "    out_degree_centrality = nx.out_degree_centrality(G)  # How many nodes this one affects\n",
        "\n",
        "    try:\n",
        "        betweenness_centrality = nx.betweenness_centrality(G)  # Node's role as a connector\n",
        "    except:\n",
        "        betweenness_centrality = {node: 0 for node in G.nodes()}\n",
        "\n",
        "    # Add metrics to dataframe\n",
        "    enhanced_df['degree_centrality'] = None\n",
        "    enhanced_df['in_degree_centrality'] = None\n",
        "    enhanced_df['out_degree_centrality'] = None\n",
        "    enhanced_df['betweenness_centrality'] = None\n",
        "\n",
        "    for idx, row in enhanced_df.iterrows():\n",
        "        title = row['Title']\n",
        "        enhanced_df.at[idx, 'degree_centrality'] = degree_centrality.get(title, 0)\n",
        "        enhanced_df.at[idx, 'in_degree_centrality'] = in_degree_centrality.get(title, 0)\n",
        "        enhanced_df.at[idx, 'out_degree_centrality'] = out_degree_centrality.get(title, 0)\n",
        "        enhanced_df.at[idx, 'betweenness_centrality'] = betweenness_centrality.get(title, 0)\n",
        "\n",
        "    # 3. Add Markov blanket information (parents, children, and children's parents)\n",
        "    enhanced_df['markov_blanket'] = None\n",
        "\n",
        "    for idx, row in enhanced_df.iterrows():\n",
        "        title = row['Title']\n",
        "        parents = row['Parents'] if isinstance(row['Parents'], list) else []\n",
        "        children = row['Children'] if isinstance(row['Children'], list) else []\n",
        "\n",
        "        # Get children's parents (excluding this node)\n",
        "        childrens_parents = []\n",
        "        for child in children:\n",
        "            child_row = enhanced_df[enhanced_df['Title'] == child]\n",
        "            if not child_row.empty:\n",
        "                child_parents = child_row.iloc[0]['Parents']\n",
        "                if isinstance(child_parents, list):\n",
        "                    childrens_parents.extend([p for p in child_parents if p != title])\n",
        "\n",
        "        # Remove duplicates\n",
        "        childrens_parents = list(set(childrens_parents))\n",
        "\n",
        "        # Combine to get Markov blanket\n",
        "        markov_blanket = list(set(parents + children + childrens_parents))\n",
        "        enhanced_df.at[idx, 'markov_blanket'] = markov_blanket\n",
        "\n",
        "    return enhanced_df"
      ],
      "metadata": {
        "id": "BBHfjdbVrTN1"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-0BjD1J1dahj",
        "outputId": "178ecadc-13ce-4902-aac3-d8cff4370eed",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Enhanced DataFrame with additional calculated columns:\n",
            "\n",
            "Joint Probabilities Example:\n",
            "Joint probabilities for Existential_Catastrophe:\n",
            "None\n",
            "\n",
            "Network Metrics:\n",
            "Existential_Catastrophe:\n",
            "  Degree Centrality: 0.000\n",
            "  Betweenness Centrality: 0.000\n",
            "Human_Disempowerment:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Scale_Of_Power_Seeking:\n",
            "  Degree Centrality: 0.136\n",
            "  Betweenness Centrality: 0.037\n",
            "Misaligned_Power_Seeking:\n",
            "  Degree Centrality: 0.182\n",
            "  Betweenness Centrality: 0.056\n",
            "APS_Systems:\n",
            "  Degree Centrality: 0.182\n",
            "  Betweenness Centrality: 0.019\n",
            "Advanced_AI_Capability:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Agentic_Planning:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Strategic_Awareness:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Difficulty_Of_Alignment:\n",
            "  Degree Centrality: 0.182\n",
            "  Betweenness Centrality: 0.019\n",
            "Instrumental_Convergence:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Problems_With_Proxies:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Problems_With_Search:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Deployment_Decisions:\n",
            "  Degree Centrality: 0.136\n",
            "  Betweenness Centrality: 0.026\n",
            "Incentives_To_Build_APS:\n",
            "  Degree Centrality: 0.136\n",
            "  Betweenness Centrality: 0.017\n",
            "Usefulness_Of_APS:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Competitive_Dynamics:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Deception_By_AI:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Corrective_Feedback:\n",
            "  Degree Centrality: 0.136\n",
            "  Betweenness Centrality: 0.009\n",
            "Warning_Shots:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Rapid_Capability_Escalation:\n",
            "  Degree Centrality: 0.045\n",
            "  Betweenness Centrality: 0.000\n",
            "Barriers_To_Understanding:\n",
            "  Degree Centrality: 0.000\n",
            "  Betweenness Centrality: 0.000\n",
            "Adversarial_Dynamics:\n",
            "  Degree Centrality: 0.000\n",
            "  Betweenness Centrality: 0.000\n",
            "Stakes_Of_Error:\n",
            "  Degree Centrality: 0.000\n",
            "  Betweenness Centrality: 0.000\n",
            "\n",
            "Enhanced data saved to 'enhanced_extracted_data.csv'\n"
          ]
        }
      ],
      "source": [
        "# @title 3.3 --- Enhance Extracted Data with Network Metrics ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Applies the post-processing functions to enhance the extracted data.\n",
        "\n",
        "This block takes the basic extracted DataFrame from the BayesDown parsing step\n",
        "and enriches it with calculated metrics that provide deeper insight into the\n",
        "network structure and relationships. It:\n",
        "\n",
        "1. Applies the enhancement functions defined previously\n",
        "2. Displays summary information about key calculated metrics\n",
        "3. Saves the enhanced data for further analysis and visualization\n",
        "\n",
        "The enhanced DataFrame provides a richer representation of the Bayesian network,\n",
        "including measures of node importance and conditional relationships that are\n",
        "essential for effective analysis and visualization.\n",
        "\n",
        "DEPENDENCIES: enhance_extracted_data function\n",
        "INPUTS: DataFrame with basic extracted BayesDown data\n",
        "OUTPUTS: Enhanced DataFrame with additional calculated columns, saved to CSV\n",
        "\"\"\"\n",
        "\n",
        "# Enhance the extracted dataframe with calculated columns\n",
        "enhanced_df = enhance_extracted_data(result_df)\n",
        "\n",
        "# Display the enhanced dataframe\n",
        "print(\"Enhanced DataFrame with additional calculated columns:\")\n",
        "enhanced_df.head()\n",
        "\n",
        "# Check some calculated metrics\n",
        "print(\"\\nJoint Probabilities Example:\")\n",
        "example_node = enhanced_df.loc[0, 'Title']\n",
        "joint_probs = enhanced_df.loc[0, 'joint_probabilities']\n",
        "print(f\"Joint probabilities for {example_node}:\")\n",
        "print(joint_probs)\n",
        "\n",
        "print(\"\\nNetwork Metrics:\")\n",
        "for idx, row in enhanced_df.iterrows():\n",
        "    print(f\"{row['Title']}:\")\n",
        "    print(f\"  Degree Centrality: {row['degree_centrality']:.3f}\")\n",
        "    print(f\"  Betweenness Centrality: {row['betweenness_centrality']:.3f}\")\n",
        "\n",
        "# Save the enhanced dataframe\n",
        "enhanced_df.to_csv('enhanced_extracted_data.csv', index=False)\n",
        "print(\"\\nEnhanced data saved to 'enhanced_extracted_data.csv'\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xTwPO_J-dahj"
      },
      "source": [
        "### 3.4 Download and save finished data frame as .csv file"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "5rJEacladahj",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "3022ca0e-de67-48cb-9951-87d484daccc3"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "✅ Extracted data saved successfully to 'extracted_data.csv'\n",
            "Note: If using updated data in future steps, the file must be pushed to the GitHub repository\n"
          ]
        }
      ],
      "source": [
        "# @title 3.4 --- Save Extracted Data for Further Processing ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Saves the extracted data to a CSV file for further processing.\n",
        "\n",
        "This step is essential for:\n",
        "1. Persisting the structured representation of the Bayesian network\n",
        "2. Enabling further analysis in other tools or notebook sections\n",
        "3. Creating a permanent record of the extraction results\n",
        "4. Making the data available for the visualization pipeline\n",
        "\n",
        "The CSV format provides a standardized, tabular representation of the network\n",
        "that can be easily loaded and processed in subsequent analysis steps.\n",
        "\n",
        "DEPENDENCIES: pandas DataFrame operations\n",
        "INPUTS: Extracted DataFrame from the parsing step\n",
        "OUTPUTS: CSV file containing the structured network data\n",
        "\"\"\"\n",
        "\n",
        "# Save the extracted data as a CSV file\n",
        "result_df.to_csv('extracted_data.csv', index=False)\n",
        "\n",
        "print(\"✅ Extracted data saved successfully to 'extracted_data.csv'\")\n",
        "print(\"Note: If using updated data in future steps, the file must be pushed to the GitHub repository\")"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 4. 4.0 Analysis & Inference: Bayesian Network Visualization\n",
        "\n",
        "## Bayesian Network Visualization Approach\n",
        "\n",
        "This section implements the visualization component of the AMTAIR project, transforming the structured data extracted from BayesDown into an interactive network visualization that makes complex probabilistic relationships accessible to human understanding.\n",
        "\n",
        "### Visualization Philosophy\n",
        "\n",
        "A key challenge in AI governance is making complex probabilistic relationships understandable to diverse stakeholders. This visualization system addresses this challenge through:\n",
        "\n",
        "1. **Visual Encoding of Probability**: Node colors reflect probability values (green for high probability, red for low)\n",
        "2. **Structural Classification**: Border colors indicate node types (blue for root causes, purple for intermediate nodes, magenta for leaf nodes)\n",
        "3. **Progressive Disclosure**: Basic information in tooltips, detailed probability tables in modal popups\n",
        "4. **Interactive Exploration**: Draggable nodes, configurable physics, click interactions\n",
        "\n",
        "### Connection to AMTAIR Goals\n",
        "\n",
        "This visualization approach directly supports the AMTAIR project's goal of improving coordination in AI governance by:\n",
        "\n",
        "1. Making implicit models explicit through visual representation\n",
        "2. Providing a common language for discussing probabilistic relationships\n",
        "3. Enabling non-technical stakeholders to engage with formal models\n",
        "4. Creating shareable artifacts that facilitate collaboration\n",
        "\n",
        "### Implementation Structure\n",
        "\n",
        "The visualization system is implemented in four phases:\n",
        "\n",
        "1. **Network Construction**: Creating a directed graph representation using NetworkX\n",
        "2. **Node Classification**: Identifying node types based on network position\n",
        "3. **Visual Enhancement**: Adding color coding, tooltips, and interactive elements\n",
        "4. **Interactive Features**: Implementing click handling for detailed exploration\n",
        "\n",
        "The resulting visualization serves as both an analytical tool for experts and a communication tool for broader audiences, bridging the gap between technical and policy domains in AI governance discussions."
      ],
      "metadata": {
        "id": "t3zl7vKMECMg"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LSeSAPvtgIgU"
      },
      "source": [
        "## Phase 1: Dependencies/Functions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "7ydIAKN4gJIb"
      },
      "outputs": [],
      "source": [
        "# @title 4.0 --- Bayesian Network Visualization Functions ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Provides functions to create interactive Bayesian network visualizations\n",
        "from DataFrame representations of ArgDown/BayesDown data.\n",
        "\n",
        "This block implements the visualization pipeline described in the AMTAIR project, transforming\n",
        "the structured DataFrame extracted from ArgDown/BayesDown into an interactive network graph\n",
        "that displays nodes, relationships, and probability information. The visualization leverages\n",
        "NetworkX for graph representation and PyVis for interactive display.\n",
        "\n",
        "Key visualization features:\n",
        "1. Color-coding of nodes based on probability values\n",
        "2. Border styling to indicate node types (root, intermediate, leaf)\n",
        "3. Interactive tooltips with probability information\n",
        "4. Modal popups with detailed conditional probability tables\n",
        "5. Physics-based layout for intuitive exploration\n",
        "\n",
        "DEPENDENCIES: networkx, pyvis, HTML display from IPython\n",
        "INPUTS: DataFrame with node information, relationships, and probabilities\n",
        "OUTPUTS: Interactive HTML visualization of the Bayesian network\n",
        "\"\"\"\n",
        "\n",
        "from pyvis.network import Network\n",
        "import networkx as nx\n",
        "from IPython.display import HTML\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import io\n",
        "import base64\n",
        "import colorsys\n",
        "import json\n",
        "\n",
        "def create_bayesian_network_with_probabilities(df):\n",
        "    \"\"\"\n",
        "    Create an interactive Bayesian network visualization with enhanced probability visualization\n",
        "    and node classification based on network structure.\n",
        "\n",
        "    Args:\n",
        "        df (pandas.DataFrame): DataFrame containing node information, relationships, and probabilities\n",
        "\n",
        "    Returns:\n",
        "        IPython.display.HTML: Interactive HTML visualization of the Bayesian network\n",
        "    \"\"\"\n",
        "    # PHASE 1: Create a directed graph representation\n",
        "    G = nx.DiGraph()\n",
        "\n",
        "    # Add nodes with proper attributes\n",
        "    for idx, row in df.iterrows():\n",
        "        title = row['Title']\n",
        "        description = row['Description']\n",
        "\n",
        "        # Process probability information\n",
        "        priors = get_priors(row)\n",
        "        instantiations = get_instantiations(row)\n",
        "\n",
        "        # Add node with base information\n",
        "        G.add_node(\n",
        "            title,\n",
        "            description=description,\n",
        "            priors=priors,\n",
        "            instantiations=instantiations,\n",
        "            posteriors=get_posteriors(row)\n",
        "        )\n",
        "\n",
        "    # Add edges based on parent-child relationships\n",
        "    for idx, row in df.iterrows():\n",
        "        child = row['Title']\n",
        "        parents = get_parents(row)\n",
        "\n",
        "        # Add edges from each parent to this child\n",
        "        for parent in parents:\n",
        "            if parent in G.nodes():\n",
        "                G.add_edge(parent, child)\n",
        "\n",
        "    # PHASE 2: Classify nodes based on network structure\n",
        "    classify_nodes(G)\n",
        "\n",
        "    # PHASE 3: Create interactive network visualization\n",
        "    net = Network(notebook=True, directed=True, cdn_resources=\"in_line\", height=\"600px\", width=\"100%\")\n",
        "\n",
        "    # Configure physics for better layout\n",
        "    net.force_atlas_2based(gravity=-50, spring_length=100, spring_strength=0.02)\n",
        "    net.show_buttons(filter_=['physics'])  # Allow user to adjust physics settings\n",
        "\n",
        "    # Add the graph to the network\n",
        "    net.from_nx(G)\n",
        "\n",
        "    # PHASE 4: Enhance node appearance with probability information\n",
        "    for node in net.nodes:\n",
        "        node_id = node['id']\n",
        "        node_data = G.nodes[node_id]\n",
        "\n",
        "        # Get node type and set border color\n",
        "        node_type = node_data.get('node_type', 'unknown')\n",
        "        border_color = get_border_color(node_type)\n",
        "\n",
        "        # Get probability information\n",
        "        priors = node_data.get('priors', {})\n",
        "        true_prob = priors.get('true_prob', 0.5) if priors else 0.5\n",
        "\n",
        "        # Get proper state names\n",
        "        instantiations = node_data.get('instantiations', [\"TRUE\", \"FALSE\"])\n",
        "        true_state = instantiations[0] if len(instantiations) > 0 else \"TRUE\"\n",
        "        false_state = instantiations[1] if len(instantiations) > 1 else \"FALSE\"\n",
        "\n",
        "        # Create background color based on probability\n",
        "        background_color = get_probability_color(priors)\n",
        "\n",
        "        # Create tooltip with probability information\n",
        "        tooltip = create_tooltip(node_id, node_data)\n",
        "\n",
        "        # Create a simpler node label with probability\n",
        "        simple_label = f\"{node_id}\\np={true_prob:.2f}\"\n",
        "\n",
        "        # Store expanded content as a node attribute for use in click handler\n",
        "        node_data['expanded_content'] = create_expanded_content(node_id, node_data)\n",
        "\n",
        "        # Set node attributes\n",
        "        node['title'] = tooltip  # Tooltip HTML\n",
        "        node['label'] = simple_label  # Simple text label\n",
        "        node['shape'] = 'box'\n",
        "        node['color'] = {\n",
        "            'background': background_color,\n",
        "            'border': border_color,\n",
        "            'highlight': {\n",
        "                'background': background_color,\n",
        "                'border': border_color\n",
        "            }\n",
        "        }\n",
        "\n",
        "    # PHASE 5: Setup interactive click handling\n",
        "    # Prepare data for click handler\n",
        "    setup_data = {\n",
        "        'nodes_data': {node_id: {\n",
        "            'expanded_content': json.dumps(G.nodes[node_id].get('expanded_content', '')),\n",
        "            'description': G.nodes[node_id].get('description', ''),\n",
        "            'priors': G.nodes[node_id].get('priors', {}),\n",
        "            'posteriors': G.nodes[node_id].get('posteriors', {})\n",
        "        } for node_id in G.nodes()}\n",
        "    }\n",
        "\n",
        "    # JavaScript code for handling node clicks\n",
        "    click_js = \"\"\"\n",
        "    // Store node data for click handling\n",
        "    var nodesData = %s;\n",
        "\n",
        "    // Add event listener for node clicks\n",
        "    network.on(\"click\", function(params) {\n",
        "        if (params.nodes.length > 0) {\n",
        "            var nodeId = params.nodes[0];\n",
        "            var nodeInfo = nodesData[nodeId];\n",
        "\n",
        "            if (nodeInfo) {\n",
        "                // Create a modal popup for expanded content\n",
        "                var modal = document.createElement('div');\n",
        "                modal.style.position = 'fixed';\n",
        "                modal.style.left = '50%%';\n",
        "                modal.style.top = '50%%';\n",
        "                modal.style.transform = 'translate(-50%%, -50%%)';\n",
        "                modal.style.backgroundColor = 'white';\n",
        "                modal.style.padding = '20px';\n",
        "                modal.style.borderRadius = '5px';\n",
        "                modal.style.boxShadow = '0 0 10px rgba(0,0,0,0.5)';\n",
        "                modal.style.zIndex = '1000';\n",
        "                modal.style.maxWidth = '80%%';\n",
        "                modal.style.maxHeight = '80%%';\n",
        "                modal.style.overflow = 'auto';\n",
        "\n",
        "                // Add expanded content\n",
        "                modal.innerHTML = nodeInfo.expanded_content || 'No detailed information available';\n",
        "\n",
        "                // Add close button\n",
        "                var closeBtn = document.createElement('button');\n",
        "                closeBtn.innerHTML = 'Close';\n",
        "                closeBtn.style.marginTop = '10px';\n",
        "                closeBtn.style.padding = '5px 10px';\n",
        "                closeBtn.style.cursor = 'pointer';\n",
        "                closeBtn.onclick = function() {\n",
        "                    document.body.removeChild(modal);\n",
        "                };\n",
        "                modal.appendChild(closeBtn);\n",
        "\n",
        "                // Add modal to body\n",
        "                document.body.appendChild(modal);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    \"\"\" % json.dumps(setup_data['nodes_data'])\n",
        "\n",
        "    # PHASE 6: Save the graph to HTML and inject custom click handling\n",
        "    html_file = \"bayesian_network.html\"\n",
        "    net.save_graph(html_file)\n",
        "\n",
        "    # Inject custom click handling into HTML\n",
        "    try:\n",
        "        with open(html_file, \"r\") as f:\n",
        "            html_content = f.read()\n",
        "\n",
        "        # Insert click handling script before the closing body tag\n",
        "        html_content = html_content.replace('</body>', f'<script>{click_js}</script></body>')\n",
        "\n",
        "        # Write back the modified HTML\n",
        "        with open(html_file, \"w\") as f:\n",
        "            f.write(html_content)\n",
        "\n",
        "        return HTML(html_content)\n",
        "    except Exception as e:\n",
        "        return HTML(f\"<p>Error rendering HTML: {str(e)}</p><p>The network visualization has been saved to '{html_file}'</p>\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "byAExfek5yFU"
      },
      "source": [
        "## Phase 2: Node Classification and Styling Module"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "RnRRLVq05yhr"
      },
      "outputs": [],
      "source": [
        "# @title 4.1 --- Node Classification and Styling Functions ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Implements the visual classification and styling of nodes in the Bayesian network.\n",
        "\n",
        "This module handles the identification of node types based on their position in the network\n",
        "and provides appropriate visual styling for each type. The functions:\n",
        "\n",
        "1. Classify nodes as parents (causes), children (intermediate effects), or leaves (final effects)\n",
        "2. Assign appropriate border colors to visually distinguish node types\n",
        "3. Calculate background colors based on probability values\n",
        "4. Extract relevant information from DataFrame rows in a robust manner\n",
        "\n",
        "The visual encoding helps users understand both the structure of the network\n",
        "and the probability distributions at a glance.\n",
        "\n",
        "DEPENDENCIES: colorsys for color manipulation\n",
        "INPUTS: Graph structure and node data\n",
        "OUTPUTS: Classification and styling information for visualization\n",
        "\"\"\"\n",
        "\n",
        "def classify_nodes(G):\n",
        "    \"\"\"\n",
        "    Classify nodes as parent, child, or leaf based on network structure\n",
        "\n",
        "    Args:\n",
        "        G (networkx.DiGraph): Directed graph representation of the Bayesian network\n",
        "\n",
        "    Effects:\n",
        "        Adds 'node_type' attribute to each node in the graph:\n",
        "        - 'parent': Root node with no parents but has children (causal source)\n",
        "        - 'child': Node with both parents and children (intermediate)\n",
        "        - 'leaf': Node with parents but no children (final effect)\n",
        "        - 'isolated': Node with no connections (rare in Bayesian networks)\n",
        "    \"\"\"\n",
        "    for node in G.nodes():\n",
        "        predecessors = list(G.predecessors(node))  # Nodes pointing to this one (causes)\n",
        "        successors = list(G.successors(node))      # Nodes this one points to (effects)\n",
        "\n",
        "        if not predecessors:  # No parents\n",
        "            if successors:  # Has children\n",
        "                G.nodes[node]['node_type'] = 'parent'  # Root cause\n",
        "            else:  # No children either\n",
        "                G.nodes[node]['node_type'] = 'isolated'  # Disconnected node\n",
        "        else:  # Has parents\n",
        "            if not successors:  # No children\n",
        "                G.nodes[node]['node_type'] = 'leaf'  # Final effect\n",
        "            else:  # Has both parents and children\n",
        "                G.nodes[node]['node_type'] = 'child'  # Intermediate node\n",
        "\n",
        "def get_border_color(node_type):\n",
        "    \"\"\"\n",
        "    Return border color based on node type\n",
        "\n",
        "    Args:\n",
        "        node_type (str): Type of node ('parent', 'child', 'leaf', or 'isolated')\n",
        "\n",
        "    Returns:\n",
        "        str: Hex color code for node border\n",
        "    \"\"\"\n",
        "    if node_type == 'parent':\n",
        "        return '#0000FF'  # Blue for root causes\n",
        "    elif node_type == 'child':\n",
        "        return '#800080'  # Purple for intermediate nodes\n",
        "    elif node_type == 'leaf':\n",
        "        return '#FF00FF'  # Magenta for final effects\n",
        "    else:\n",
        "        return '#000000'  # Default black for any other type\n",
        "\n",
        "def get_probability_color(priors):\n",
        "    \"\"\"\n",
        "    Create background color based on probability (red to green gradient)\n",
        "\n",
        "    Args:\n",
        "        priors (dict): Dictionary containing probability information\n",
        "\n",
        "    Returns:\n",
        "        str: Hex color code for node background, ranging from red (low probability)\n",
        "             to green (high probability)\n",
        "    \"\"\"\n",
        "    # Default to neutral color if no probability\n",
        "    if not priors or 'true_prob' not in priors:\n",
        "        return '#F8F8F8'  # Light grey\n",
        "\n",
        "    # Get probability value\n",
        "    prob = priors['true_prob']\n",
        "\n",
        "    # Create color gradient from red (0.0) to green (1.0)\n",
        "    hue = 120 * prob  # 0 = red, 120 = green (in HSL color space)\n",
        "    saturation = 0.75\n",
        "    lightness = 0.8  # Lighter color for better text visibility\n",
        "\n",
        "    # Convert HSL to RGB\n",
        "    r, g, b = colorsys.hls_to_rgb(hue/360, lightness, saturation)\n",
        "\n",
        "    # Convert to hex format\n",
        "    hex_color = \"#{:02x}{:02x}{:02x}\".format(int(r*255), int(g*255), int(b*255))\n",
        "\n",
        "    return hex_color\n",
        "\n",
        "def get_parents(row):\n",
        "    \"\"\"\n",
        "    Extract parent nodes from row data, with safe handling for different data types\n",
        "\n",
        "    Args:\n",
        "        row (pandas.Series): Row from DataFrame containing node information\n",
        "\n",
        "    Returns:\n",
        "        list: List of parent node names\n",
        "    \"\"\"\n",
        "    if 'Parents' not in row:\n",
        "        return []\n",
        "\n",
        "    parents_data = row['Parents']\n",
        "\n",
        "    # Handle NaN, None, or empty list\n",
        "    if isinstance(parents_data, float) and pd.isna(parents_data):\n",
        "        return []\n",
        "\n",
        "    if parents_data is None:\n",
        "        return []\n",
        "\n",
        "    # Handle different data types\n",
        "    if isinstance(parents_data, list):\n",
        "        # Return a list with NaN and empty strings removed\n",
        "        return [p for p in parents_data if not (isinstance(p, float) and pd.isna(p)) and p != '']\n",
        "\n",
        "    if isinstance(parents_data, str):\n",
        "        if not parents_data.strip():\n",
        "            return []\n",
        "\n",
        "        # Remove brackets and split by comma, removing empty strings and NaN\n",
        "        cleaned = parents_data.strip('[]\"\\'')\n",
        "        if not cleaned:\n",
        "            return []\n",
        "\n",
        "        return [p.strip(' \"\\'') for p in cleaned.split(',') if p.strip()]\n",
        "\n",
        "    # Default: empty list\n",
        "    return []\n",
        "\n",
        "def get_instantiations(row):\n",
        "    \"\"\"\n",
        "    Extract instantiations with safe handling for different data types\n",
        "\n",
        "    Args:\n",
        "        row (pandas.Series): Row from DataFrame containing node information\n",
        "\n",
        "    Returns:\n",
        "        list: List of possible instantiations (states) for the node\n",
        "    \"\"\"\n",
        "    if 'instantiations' not in row:\n",
        "        return [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "    inst_data = row['instantiations']\n",
        "\n",
        "    # Handle NaN or None\n",
        "    if isinstance(inst_data, float) and pd.isna(inst_data):\n",
        "        return [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "    if inst_data is None:\n",
        "        return [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "    # Handle different data types\n",
        "    if isinstance(inst_data, list):\n",
        "        return inst_data if inst_data else [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "    if isinstance(inst_data, str):\n",
        "        if not inst_data.strip():\n",
        "            return [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "        # Remove brackets and split by comma\n",
        "        cleaned = inst_data.strip('[]\"\\'')\n",
        "        if not cleaned:\n",
        "            return [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "        return [i.strip(' \"\\'') for i in cleaned.split(',') if i.strip()]\n",
        "\n",
        "    # Default\n",
        "    return [\"TRUE\", \"FALSE\"]\n",
        "\n",
        "def get_priors(row):\n",
        "    \"\"\"\n",
        "    Extract prior probabilities with safe handling for different data types\n",
        "\n",
        "    Args:\n",
        "        row (pandas.Series): Row from DataFrame containing node information\n",
        "\n",
        "    Returns:\n",
        "        dict: Dictionary of prior probabilities with 'true_prob' added for convenience\n",
        "    \"\"\"\n",
        "    if 'priors' not in row:\n",
        "        return {}\n",
        "\n",
        "    priors_data = row['priors']\n",
        "\n",
        "    # Handle NaN or None\n",
        "    if isinstance(priors_data, float) and pd.isna(priors_data):\n",
        "        return {}\n",
        "\n",
        "    if priors_data is None:\n",
        "        return {}\n",
        "\n",
        "    result = {}\n",
        "\n",
        "    # Handle dictionary\n",
        "    if isinstance(priors_data, dict):\n",
        "        result = priors_data\n",
        "    # Handle string representation of dictionary\n",
        "    elif isinstance(priors_data, str):\n",
        "        if not priors_data.strip() or priors_data == '{}':\n",
        "            return {}\n",
        "\n",
        "        try:\n",
        "            # Try to evaluate as Python literal\n",
        "            import ast\n",
        "            result = ast.literal_eval(priors_data)\n",
        "        except:\n",
        "            # Simple parsing for items like {'p(TRUE)': '0.2', 'p(FALSE)': '0.8'}\n",
        "            if '{' in priors_data and '}' in priors_data:\n",
        "                content = priors_data[priors_data.find('{')+1:priors_data.rfind('}')]\n",
        "                items = [item.strip() for item in content.split(',')]\n",
        "\n",
        "                for item in items:\n",
        "                    if ':' in item:\n",
        "                        key, value = item.split(':', 1)\n",
        "                        key = key.strip(' \\'\\\"')\n",
        "                        value = value.strip(' \\'\\\"')\n",
        "                        result[key] = value\n",
        "\n",
        "    # Extract main probability for TRUE state\n",
        "    instantiations = get_instantiations(row)\n",
        "    true_state = instantiations[0] if instantiations else \"TRUE\"\n",
        "    true_key = f\"p({true_state})\"\n",
        "\n",
        "    if true_key in result:\n",
        "        try:\n",
        "            result['true_prob'] = float(result[true_key])\n",
        "        except:\n",
        "            pass\n",
        "\n",
        "    return result\n",
        "\n",
        "def get_posteriors(row):\n",
        "    \"\"\"\n",
        "    Extract posterior probabilities with safe handling for different data types\n",
        "\n",
        "    Args:\n",
        "        row (pandas.Series): Row from DataFrame containing node information\n",
        "\n",
        "    Returns:\n",
        "        dict: Dictionary of conditional probabilities\n",
        "    \"\"\"\n",
        "    if 'posteriors' not in row:\n",
        "        return {}\n",
        "\n",
        "    posteriors_data = row['posteriors']\n",
        "\n",
        "    # Handle NaN or None\n",
        "    if isinstance(posteriors_data, float) and pd.isna(posteriors_data):\n",
        "        return {}\n",
        "\n",
        "    if posteriors_data is None:\n",
        "        return {}\n",
        "\n",
        "    result = {}\n",
        "\n",
        "    # Handle dictionary\n",
        "    if isinstance(posteriors_data, dict):\n",
        "        result = posteriors_data\n",
        "    # Handle string representation of dictionary\n",
        "    elif isinstance(posteriors_data, str):\n",
        "        if not posteriors_data.strip() or posteriors_data == '{}':\n",
        "            return {}\n",
        "\n",
        "        try:\n",
        "            # Try to evaluate as Python literal\n",
        "            import ast\n",
        "            result = ast.literal_eval(posteriors_data)\n",
        "        except:\n",
        "            # Simple parsing\n",
        "            if '{' in posteriors_data and '}' in posteriors_data:\n",
        "                content = posteriors_data[posteriors_data.find('{')+1:posteriors_data.rfind('}')]\n",
        "                items = [item.strip() for item in content.split(',')]\n",
        "\n",
        "                for item in items:\n",
        "                    if ':' in item:\n",
        "                        key, value = item.split(':', 1)\n",
        "                        key = key.strip(' \\'\\\"')\n",
        "                        value = value.strip(' \\'\\\"')\n",
        "                        result[key] = value\n",
        "\n",
        "    return result"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "gnS3jFGU52OZ"
      },
      "source": [
        "## Phase 3: HTML Content Generation Module"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "ShVDxse152gY"
      },
      "outputs": [],
      "source": [
        "# @title 4.2 --- HTML Content Generation Functions ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Creates rich HTML content for the interactive Bayesian network visualization.\n",
        "\n",
        "This module generates the HTML components that enhance the Bayesian network visualization:\n",
        "1. Probability bars - Visual representation of probability distributions\n",
        "2. Node tooltips - Rich information displayed on hover\n",
        "3. Expanded content - Detailed probability information shown when clicking nodes\n",
        "\n",
        "These HTML components make the mathematical concepts of Bayesian networks more\n",
        "intuitive and accessible to users without requiring deep statistical knowledge.\n",
        "The visual encoding of probabilities (colors, bars) and the progressive disclosure\n",
        "of information (hover, click) help users build understanding at their own pace.\n",
        "\n",
        "DEPENDENCIES: HTML generation capabilities\n",
        "INPUTS: Node data from the Bayesian network\n",
        "OUTPUTS: HTML content for visualization components\n",
        "\"\"\"\n",
        "\n",
        "def create_probability_bar(true_prob, false_prob, height=\"15px\", show_values=True, value_prefix=\"\"):\n",
        "    \"\"\"\n",
        "    Creates a reusable HTML component to visualize probability distribution\n",
        "\n",
        "    Args:\n",
        "        true_prob (float): Probability of the true state (0.0-1.0)\n",
        "        false_prob (float): Probability of the false state (0.0-1.0)\n",
        "        height (str): CSS height of the bar\n",
        "        show_values (bool): Whether to display numerical values\n",
        "        value_prefix (str): Prefix to add before values (e.g., \"p=\")\n",
        "\n",
        "    Returns:\n",
        "        str: HTML for a horizontal bar showing probabilities\n",
        "    \"\"\"\n",
        "    # Prepare display labels if showing values\n",
        "    true_label = f\"{value_prefix}{true_prob:.3f}\" if show_values else \"\"\n",
        "    false_label = f\"{value_prefix}{false_prob:.3f}\" if show_values else \"\"\n",
        "\n",
        "    # Create the HTML for a horizontal stacked bar\n",
        "    html = f\"\"\"\n",
        "    <div style=\"width:100%; height:{height}; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\">\n",
        "        <div style=\"flex-basis:{true_prob*100}%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:{2 if true_prob > 0 else 0}px;\">\n",
        "            <span style=\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\">{true_label}</span>\n",
        "        </div>\n",
        "        <div style=\"flex-basis:{false_prob*100}%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:{2 if false_prob > 0 else 0}px;\">\n",
        "            <span style=\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\">{false_label}</span>\n",
        "        </div>\n",
        "    </div>\n",
        "    \"\"\"\n",
        "    return html\n",
        "\n",
        "def create_tooltip(node_id, node_data):\n",
        "    \"\"\"\n",
        "    Create rich HTML tooltip with probability information\n",
        "\n",
        "    Args:\n",
        "        node_id (str): Identifier of the node\n",
        "        node_data (dict): Node attributes including probabilities\n",
        "\n",
        "    Returns:\n",
        "        str: HTML content for tooltip displayed on hover\n",
        "    \"\"\"\n",
        "    # Extract node information\n",
        "    description = node_data.get('description', '')\n",
        "    priors = node_data.get('priors', {})\n",
        "    instantiations = node_data.get('instantiations', [\"TRUE\", \"FALSE\"])\n",
        "\n",
        "    # Start building the HTML tooltip\n",
        "    html = f\"\"\"\n",
        "    <div style=\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\">\n",
        "        <h3 style=\"margin-top:0; color:#202124;\">{node_id}</h3>\n",
        "        <p style=\"font-style:italic;\">{description}</p>\n",
        "    \"\"\"\n",
        "\n",
        "    # Add prior probabilities section\n",
        "    if priors and 'true_prob' in priors:\n",
        "        true_prob = priors['true_prob']\n",
        "        false_prob = 1.0 - true_prob\n",
        "\n",
        "        # Get proper state names\n",
        "        true_state = instantiations[0] if len(instantiations) > 0 else \"TRUE\"\n",
        "        false_state = instantiations[1] if len(instantiations) > 1 else \"FALSE\"\n",
        "\n",
        "        html += f\"\"\"\n",
        "        <div style=\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\">\n",
        "            <h4 style=\"margin-top:0; font-size:14px;\">Prior Probabilities:</h4>\n",
        "            <div style=\"display:flex; justify-content:space-between; margin-bottom:4px;\">\n",
        "                <div style=\"font-size:12px;\">{true_state}: {true_prob:.3f}</div>\n",
        "                <div style=\"font-size:12px;\">{false_state}: {false_prob:.3f}</div>\n",
        "            </div>\n",
        "            {create_probability_bar(true_prob, false_prob, \"20px\", True)}\n",
        "        </div>\n",
        "        \"\"\"\n",
        "\n",
        "    # Add click instruction\n",
        "    html += \"\"\"\n",
        "    <div style=\"margin-top:8px; font-size:12px; color:#666; text-align:center;\">\n",
        "        Click node to see full probability details\n",
        "    </div>\n",
        "    </div>\n",
        "    \"\"\"\n",
        "\n",
        "    return html\n",
        "\n",
        "def create_expanded_content(node_id, node_data):\n",
        "    \"\"\"\n",
        "    Create expanded content shown when a node is clicked\n",
        "\n",
        "    Args:\n",
        "        node_id (str): Identifier of the node\n",
        "        node_data (dict): Node attributes including probabilities\n",
        "\n",
        "    Returns:\n",
        "        str: HTML content for detailed view displayed on click\n",
        "    \"\"\"\n",
        "    # Extract node information\n",
        "    description = node_data.get('description', '')\n",
        "    priors = node_data.get('priors', {})\n",
        "    posteriors = node_data.get('posteriors', {})\n",
        "    instantiations = node_data.get('instantiations', [\"TRUE\", \"FALSE\"])\n",
        "\n",
        "    # Get proper state names\n",
        "    true_state = instantiations[0] if len(instantiations) > 0 else \"TRUE\"\n",
        "    false_state = instantiations[1] if len(instantiations) > 1 else \"FALSE\"\n",
        "\n",
        "    # Extract probabilities\n",
        "    true_prob = priors.get('true_prob', 0.5)\n",
        "    false_prob = 1.0 - true_prob\n",
        "\n",
        "    # Start building the expanded content\n",
        "    html = f\"\"\"\n",
        "    <div style=\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\">\n",
        "        <h2 style=\"margin-top:0; color:#333;\">{node_id}</h2>\n",
        "        <p style=\"font-style:italic; margin-bottom:15px;\">{description}</p>\n",
        "\n",
        "        <div style=\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\">\n",
        "            <h3 style=\"margin-top:0; color:#333;\">Prior Probabilities</h3>\n",
        "            <div style=\"display:flex; justify-content:space-between; margin-bottom:5px;\">\n",
        "                <div><strong>{true_state}:</strong> {true_prob:.3f}</div>\n",
        "                <div><strong>{false_state}:</strong> {false_prob:.3f}</div>\n",
        "            </div>\n",
        "            {create_probability_bar(true_prob, false_prob, \"25px\", True)}\n",
        "        </div>\n",
        "    \"\"\"\n",
        "\n",
        "    # Add conditional probability table if available\n",
        "    if posteriors:\n",
        "        html += \"\"\"\n",
        "        <div style=\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\">\n",
        "            <h3 style=\"margin-top:0; color:#333;\">Conditional Probabilities</h3>\n",
        "            <table style=\"width:100%; border-collapse:collapse; font-size:13px;\">\n",
        "                <tr style=\"background-color:#eee;\">\n",
        "                    <th style=\"padding:8px; text-align:left; border:1px solid #ddd;\">Condition</th>\n",
        "                    <th style=\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\">Value</th>\n",
        "                    <th style=\"padding:8px; text-align:center; border:1px solid #ddd;\">Visualization</th>\n",
        "                </tr>\n",
        "        \"\"\"\n",
        "\n",
        "        # Sort posteriors to group by similar conditions\n",
        "        posterior_items = list(posteriors.items())\n",
        "        posterior_items.sort(key=lambda x: x[0])\n",
        "\n",
        "        # Add rows for conditional probabilities\n",
        "        for key, value in posterior_items:\n",
        "            try:\n",
        "                # Try to parse probability value\n",
        "                prob_value = float(value)\n",
        "                inv_prob = 1.0 - prob_value\n",
        "\n",
        "                # Add row with probability visualization\n",
        "                html += f\"\"\"\n",
        "                <tr>\n",
        "                    <td style=\"padding:8px; border:1px solid #ddd;\">{key}</td>\n",
        "                    <td style=\"padding:8px; text-align:center; border:1px solid #ddd;\">{prob_value:.3f}</td>\n",
        "                    <td style=\"padding:8px; border:1px solid #ddd;\">\n",
        "                        {create_probability_bar(prob_value, inv_prob, \"20px\", False)}\n",
        "                    </td>\n",
        "                </tr>\n",
        "                \"\"\"\n",
        "            except:\n",
        "                # Fallback for non-numeric values\n",
        "                html += f\"\"\"\n",
        "                <tr>\n",
        "                    <td style=\"padding:8px; border:1px solid #ddd;\">{key}</td>\n",
        "                    <td style=\"padding:8px; text-align:center; border:1px solid #ddd;\" colspan=\"2\">{value}</td>\n",
        "                </tr>\n",
        "                \"\"\"\n",
        "\n",
        "        html += \"\"\"\n",
        "            </table>\n",
        "        </div>\n",
        "        \"\"\"\n",
        "\n",
        "    html += \"</div>\"\n",
        "\n",
        "    return html"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "d2uyG0Pi571f"
      },
      "source": [
        "## Phase 4: Main Visualization Function"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "7UkPk-bm5_fm"
      },
      "outputs": [],
      "source": [
        "def create_bayesian_network_with_probabilities(df):\n",
        "    \"\"\"\n",
        "    Create an interactive Bayesian network visualization with enhanced probability visualization\n",
        "    and node classification based on network structure.\n",
        "    \"\"\"\n",
        "    # Create a directed graph\n",
        "    G = nx.DiGraph()\n",
        "\n",
        "    # Add nodes with proper attributes\n",
        "    for idx, row in df.iterrows():\n",
        "        title = row['Title']\n",
        "        description = row['Description']\n",
        "\n",
        "        # Process probability information\n",
        "        priors = get_priors(row)\n",
        "        instantiations = get_instantiations(row)\n",
        "\n",
        "        # Add node with base information\n",
        "        G.add_node(\n",
        "            title,\n",
        "            description=description,\n",
        "            priors=priors,\n",
        "            instantiations=instantiations,\n",
        "            posteriors=get_posteriors(row)\n",
        "        )\n",
        "\n",
        "    # Add edges\n",
        "    for idx, row in df.iterrows():\n",
        "        child = row['Title']\n",
        "        parents = get_parents(row)\n",
        "\n",
        "        # Add edges from each parent to this child\n",
        "        for parent in parents:\n",
        "            if parent in G.nodes():\n",
        "                G.add_edge(parent, child)\n",
        "\n",
        "    # Classify nodes based on network structure\n",
        "    classify_nodes(G)\n",
        "\n",
        "    # Create network visualization\n",
        "    net = Network(notebook=True, directed=True, cdn_resources=\"in_line\", height=\"600px\", width=\"100%\")\n",
        "\n",
        "    # Configure physics for better layout\n",
        "    net.force_atlas_2based(gravity=-50, spring_length=100, spring_strength=0.02)\n",
        "    net.show_buttons(filter_=['physics'])\n",
        "\n",
        "    # Add the graph to the network\n",
        "    net.from_nx(G)\n",
        "\n",
        "    # Enhance node appearance with probability information and classification\n",
        "    for node in net.nodes:\n",
        "        node_id = node['id']\n",
        "        node_data = G.nodes[node_id]\n",
        "\n",
        "        # Get node type and set border color\n",
        "        node_type = node_data.get('node_type', 'unknown')\n",
        "        border_color = get_border_color(node_type)\n",
        "\n",
        "        # Get probability information\n",
        "        priors = node_data.get('priors', {})\n",
        "        true_prob = priors.get('true_prob', 0.5) if priors else 0.5\n",
        "\n",
        "        # Get proper state names\n",
        "        instantiations = node_data.get('instantiations', [\"TRUE\", \"FALSE\"])\n",
        "        true_state = instantiations[0] if len(instantiations) > 0 else \"TRUE\"\n",
        "        false_state = instantiations[1] if len(instantiations) > 1 else \"FALSE\"\n",
        "\n",
        "        # Create background color based on probability\n",
        "        background_color = get_probability_color(priors)\n",
        "\n",
        "        # Create tooltip with probability information\n",
        "        tooltip = create_tooltip(node_id, node_data)\n",
        "\n",
        "        # Create a simpler node label with probability\n",
        "        simple_label = f\"{node_id}\\np={true_prob:.2f}\"\n",
        "\n",
        "        # Store expanded content as a node attribute for use in click handler\n",
        "        node_data['expanded_content'] = create_expanded_content(node_id, node_data)\n",
        "\n",
        "        # Set node attributes\n",
        "        node['title'] = tooltip  # Tooltip HTML\n",
        "        node['label'] = simple_label  # Simple text label\n",
        "        node['shape'] = 'box'\n",
        "        node['color'] = {\n",
        "            'background': background_color,\n",
        "            'border': border_color,\n",
        "            'highlight': {\n",
        "                'background': background_color,\n",
        "                'border': border_color\n",
        "            }\n",
        "        }\n",
        "\n",
        "    # Set up the click handler with proper data\n",
        "    setup_data = {\n",
        "        'nodes_data': {node_id: {\n",
        "            'expanded_content': json.dumps(G.nodes[node_id].get('expanded_content', '')),\n",
        "            'description': G.nodes[node_id].get('description', ''),\n",
        "            'priors': G.nodes[node_id].get('priors', {}),\n",
        "            'posteriors': G.nodes[node_id].get('posteriors', {})\n",
        "        } for node_id in G.nodes()}\n",
        "    }\n",
        "\n",
        "    # Add custom click handling JavaScript\n",
        "    click_js = \"\"\"\n",
        "    // Store node data for click handling\n",
        "    var nodesData = %s;\n",
        "\n",
        "    // Add event listener for node clicks\n",
        "    network.on(\"click\", function(params) {\n",
        "        if (params.nodes.length > 0) {\n",
        "            var nodeId = params.nodes[0];\n",
        "            var nodeInfo = nodesData[nodeId];\n",
        "\n",
        "            if (nodeInfo) {\n",
        "                // Create a modal popup for expanded content\n",
        "                var modal = document.createElement('div');\n",
        "                modal.style.position = 'fixed';\n",
        "                modal.style.left = '50%%';\n",
        "                modal.style.top = '50%%';\n",
        "                modal.style.transform = 'translate(-50%%, -50%%)';\n",
        "                modal.style.backgroundColor = 'white';\n",
        "                modal.style.padding = '20px';\n",
        "                modal.style.borderRadius = '5px';\n",
        "                modal.style.boxShadow = '0 0 10px rgba(0,0,0,0.5)';\n",
        "                modal.style.zIndex = '1000';\n",
        "                modal.style.maxWidth = '80%%';\n",
        "                modal.style.maxHeight = '80%%';\n",
        "                modal.style.overflow = 'auto';\n",
        "\n",
        "                // Parse the JSON string back to HTML content\n",
        "                try {\n",
        "                    var expandedContent = JSON.parse(nodeInfo.expanded_content);\n",
        "                    modal.innerHTML = expandedContent;\n",
        "                } catch (e) {\n",
        "                    modal.innerHTML = 'Error displaying content: ' + e.message;\n",
        "                }\n",
        "\n",
        "                // Add close button\n",
        "                var closeBtn = document.createElement('button');\n",
        "                closeBtn.innerHTML = 'Close';\n",
        "                closeBtn.style.marginTop = '10px';\n",
        "                closeBtn.style.padding = '5px 10px';\n",
        "                closeBtn.style.cursor = 'pointer';\n",
        "                closeBtn.onclick = function() {\n",
        "                    document.body.removeChild(modal);\n",
        "                };\n",
        "                modal.appendChild(closeBtn);\n",
        "\n",
        "                // Add modal to body\n",
        "                document.body.appendChild(modal);\n",
        "            }\n",
        "        }\n",
        "    });\n",
        "    \"\"\" % json.dumps(setup_data['nodes_data'])\n",
        "\n",
        "    # Save the graph to HTML\n",
        "    html_file = \"bayesian_network.html\"\n",
        "    net.save_graph(html_file)\n",
        "\n",
        "    # Inject custom click handling into HTML\n",
        "    try:\n",
        "        with open(html_file, \"r\") as f:\n",
        "            html_content = f.read()\n",
        "\n",
        "        # Insert click handling script before the closing body tag\n",
        "        html_content = html_content.replace('</body>', f'<script>{click_js}</script></body>')\n",
        "\n",
        "        # Write back the modified HTML\n",
        "        with open(html_file, \"w\") as f:\n",
        "            f.write(html_content)\n",
        "\n",
        "        return HTML(html_content)\n",
        "    except Exception as e:\n",
        "        return HTML(f\"<p>Error rendering HTML: {str(e)}</p><p>The network visualization has been saved to '{html_file}'</p>\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bFtxTKmLElSF"
      },
      "source": [
        "# Quickly check HTML Outputs"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": true,
        "id": "iY1NNo2NEraS",
        "outputId": "fe6085fe-1c64-45dc-ba51-5880b2aa1672",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "<html>\n",
              "    <head>\n",
              "        <meta charset=\"utf-8\">\n",
              "        \n",
              "            <script>function neighbourhoodHighlight(params) {\n",
              "  // console.log(\"in nieghbourhoodhighlight\");\n",
              "  allNodes = nodes.get({ returnType: \"Object\" });\n",
              "  // originalNodes = JSON.parse(JSON.stringify(allNodes));\n",
              "  // if something is selected:\n",
              "  if (params.nodes.length > 0) {\n",
              "    highlightActive = true;\n",
              "    var i, j;\n",
              "    var selectedNode = params.nodes[0];\n",
              "    var degrees = 2;\n",
              "\n",
              "    // mark all nodes as hard to read.\n",
              "    for (let nodeId in allNodes) {\n",
              "      // nodeColors[nodeId] = allNodes[nodeId].color;\n",
              "      allNodes[nodeId].color = \"rgba(200,200,200,0.5)\";\n",
              "      if (allNodes[nodeId].hiddenLabel === undefined) {\n",
              "        allNodes[nodeId].hiddenLabel = allNodes[nodeId].label;\n",
              "        allNodes[nodeId].label = undefined;\n",
              "      }\n",
              "    }\n",
              "    var connectedNodes = network.getConnectedNodes(selectedNode);\n",
              "    var allConnectedNodes = [];\n",
              "\n",
              "    // get the second degree nodes\n",
              "    for (i = 1; i < degrees; i++) {\n",
              "      for (j = 0; j < connectedNodes.length; j++) {\n",
              "        allConnectedNodes = allConnectedNodes.concat(\n",
              "          network.getConnectedNodes(connectedNodes[j])\n",
              "        );\n",
              "      }\n",
              "    }\n",
              "\n",
              "    // all second degree nodes get a different color and their label back\n",
              "    for (i = 0; i < allConnectedNodes.length; i++) {\n",
              "      // allNodes[allConnectedNodes[i]].color = \"pink\";\n",
              "      allNodes[allConnectedNodes[i]].color = \"rgba(150,150,150,0.75)\";\n",
              "      if (allNodes[allConnectedNodes[i]].hiddenLabel !== undefined) {\n",
              "        allNodes[allConnectedNodes[i]].label =\n",
              "          allNodes[allConnectedNodes[i]].hiddenLabel;\n",
              "        allNodes[allConnectedNodes[i]].hiddenLabel = undefined;\n",
              "      }\n",
              "    }\n",
              "\n",
              "    // all first degree nodes get their own color and their label back\n",
              "    for (i = 0; i < connectedNodes.length; i++) {\n",
              "      // allNodes[connectedNodes[i]].color = undefined;\n",
              "      allNodes[connectedNodes[i]].color = nodeColors[connectedNodes[i]];\n",
              "      if (allNodes[connectedNodes[i]].hiddenLabel !== undefined) {\n",
              "        allNodes[connectedNodes[i]].label =\n",
              "          allNodes[connectedNodes[i]].hiddenLabel;\n",
              "        allNodes[connectedNodes[i]].hiddenLabel = undefined;\n",
              "      }\n",
              "    }\n",
              "\n",
              "    // the main node gets its own color and its label back.\n",
              "    // allNodes[selectedNode].color = undefined;\n",
              "    allNodes[selectedNode].color = nodeColors[selectedNode];\n",
              "    if (allNodes[selectedNode].hiddenLabel !== undefined) {\n",
              "      allNodes[selectedNode].label = allNodes[selectedNode].hiddenLabel;\n",
              "      allNodes[selectedNode].hiddenLabel = undefined;\n",
              "    }\n",
              "  } else if (highlightActive === true) {\n",
              "    // console.log(\"highlightActive was true\");\n",
              "    // reset all nodes\n",
              "    for (let nodeId in allNodes) {\n",
              "      // allNodes[nodeId].color = \"purple\";\n",
              "      allNodes[nodeId].color = nodeColors[nodeId];\n",
              "      // delete allNodes[nodeId].color;\n",
              "      if (allNodes[nodeId].hiddenLabel !== undefined) {\n",
              "        allNodes[nodeId].label = allNodes[nodeId].hiddenLabel;\n",
              "        allNodes[nodeId].hiddenLabel = undefined;\n",
              "      }\n",
              "    }\n",
              "    highlightActive = false;\n",
              "  }\n",
              "\n",
              "  // transform the object into an array\n",
              "  var updateArray = [];\n",
              "  if (params.nodes.length > 0) {\n",
              "    for (let nodeId in allNodes) {\n",
              "      if (allNodes.hasOwnProperty(nodeId)) {\n",
              "        // console.log(allNodes[nodeId]);\n",
              "        updateArray.push(allNodes[nodeId]);\n",
              "      }\n",
              "    }\n",
              "    nodes.update(updateArray);\n",
              "  } else {\n",
              "    // console.log(\"Nothing was selected\");\n",
              "    for (let nodeId in allNodes) {\n",
              "      if (allNodes.hasOwnProperty(nodeId)) {\n",
              "        // console.log(allNodes[nodeId]);\n",
              "        // allNodes[nodeId].color = {};\n",
              "        updateArray.push(allNodes[nodeId]);\n",
              "      }\n",
              "    }\n",
              "    nodes.update(updateArray);\n",
              "  }\n",
              "}\n",
              "\n",
              "function filterHighlight(params) {\n",
              "  allNodes = nodes.get({ returnType: \"Object\" });\n",
              "  // if something is selected:\n",
              "  if (params.nodes.length > 0) {\n",
              "    filterActive = true;\n",
              "    let selectedNodes = params.nodes;\n",
              "\n",
              "    // hiding all nodes and saving the label\n",
              "    for (let nodeId in allNodes) {\n",
              "      allNodes[nodeId].hidden = true;\n",
              "      if (allNodes[nodeId].savedLabel === undefined) {\n",
              "        allNodes[nodeId].savedLabel = allNodes[nodeId].label;\n",
              "        allNodes[nodeId].label = undefined;\n",
              "      }\n",
              "    }\n",
              "\n",
              "    for (let i=0; i < selectedNodes.length; i++) {\n",
              "      allNodes[selectedNodes[i]].hidden = false;\n",
              "      if (allNodes[selectedNodes[i]].savedLabel !== undefined) {\n",
              "        allNodes[selectedNodes[i]].label = allNodes[selectedNodes[i]].savedLabel;\n",
              "        allNodes[selectedNodes[i]].savedLabel = undefined;\n",
              "      }\n",
              "    }\n",
              "\n",
              "  } else if (filterActive === true) {\n",
              "    // reset all nodes\n",
              "    for (let nodeId in allNodes) {\n",
              "      allNodes[nodeId].hidden = false;\n",
              "      if (allNodes[nodeId].savedLabel !== undefined) {\n",
              "        allNodes[nodeId].label = allNodes[nodeId].savedLabel;\n",
              "        allNodes[nodeId].savedLabel = undefined;\n",
              "      }\n",
              "    }\n",
              "    filterActive = false;\n",
              "  }\n",
              "\n",
              "  // transform the object into an array\n",
              "  var updateArray = [];\n",
              "  if (params.nodes.length > 0) {\n",
              "    for (let nodeId in allNodes) {\n",
              "      if (allNodes.hasOwnProperty(nodeId)) {\n",
              "        updateArray.push(allNodes[nodeId]);\n",
              "      }\n",
              "    }\n",
              "    nodes.update(updateArray);\n",
              "  } else {\n",
              "    for (let nodeId in allNodes) {\n",
              "      if (allNodes.hasOwnProperty(nodeId)) {\n",
              "        updateArray.push(allNodes[nodeId]);\n",
              "      }\n",
              "    }\n",
              "    nodes.update(updateArray);\n",
              "  }\n",
              "}\n",
              "\n",
              "function selectNode(nodes) {\n",
              "  network.selectNodes(nodes);\n",
              "  neighbourhoodHighlight({ nodes: nodes });\n",
              "  return nodes;\n",
              "}\n",
              "\n",
              "function selectNodes(nodes) {\n",
              "  network.selectNodes(nodes);\n",
              "  filterHighlight({nodes: nodes});\n",
              "  return nodes;\n",
              "}\n",
              "\n",
              "function highlightFilter(filter) {\n",
              "  let selectedNodes = []\n",
              "  let selectedProp = filter['property']\n",
              "  if (filter['item'] === 'node') {\n",
              "    let allNodes = nodes.get({ returnType: \"Object\" });\n",
              "    for (let nodeId in allNodes) {\n",
              "      if (allNodes[nodeId][selectedProp] && filter['value'].includes((allNodes[nodeId][selectedProp]).toString())) {\n",
              "        selectedNodes.push(nodeId)\n",
              "      }\n",
              "    }\n",
              "  }\n",
              "  else if (filter['item'] === 'edge'){\n",
              "    let allEdges = edges.get({returnType: 'object'});\n",
              "    // check if the selected property exists for selected edge and select the nodes connected to the edge\n",
              "    for (let edge in allEdges) {\n",
              "      if (allEdges[edge][selectedProp] && filter['value'].includes((allEdges[edge][selectedProp]).toString())) {\n",
              "        selectedNodes.push(allEdges[edge]['from'])\n",
              "        selectedNodes.push(allEdges[edge]['to'])\n",
              "      }\n",
              "    }\n",
              "  }\n",
              "  selectNodes(selectedNodes)\n",
              "}</script>\n",
              "            <style>.vis-overlay{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-color-picker{background-color:#fff;border-radius:15px;box-shadow:0 0 10px 0 rgba(0,0,0,.5);display:none;height:444px;left:30px;margin-left:30px;margin-top:-140px;padding:10px;position:absolute;top:0;width:310px;z-index:1}div.vis-color-picker div.vis-arrow{left:5px;position:absolute;top:147px}div.vis-color-picker div.vis-arrow:after,div.vis-color-picker div.vis-arrow:before{border:solid transparent;content:\" \";height:0;pointer-events:none;position:absolute;right:100%;top:50%;width:0}div.vis-color-picker div.vis-arrow:after{border-color:hsla(0,0%,100%,0) #fff hsla(0,0%,100%,0) hsla(0,0%,100%,0);border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{cursor:pointer;height:289px;position:absolute;width:289px}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(180deg,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313);border:1px solid #fff;border-radius:15px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#4c4c4c\",endColorstr=\"#131313\",GradientType=0);height:15px;left:137px;position:absolute;top:137px;width:15px}div.vis-color-picker div.vis-new-color{left:159px;padding-right:2px;text-align:right}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;color:rgba(0,0,0,.4);font-size:10px;height:20px;line-height:20px;position:absolute;top:380px;vertical-align:middle;width:140px}div.vis-color-picker div.vis-initial-color{left:10px;padding-left:2px;text-align:left}div.vis-color-picker div.vis-label{left:10px;position:absolute;width:300px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{background-color:#f7f7f7;border:2px solid #d9d9d9;border-radius:10px;cursor:pointer;height:25px;line-height:25px;position:absolute;text-align:center;top:410px;vertical-align:middle;width:68px}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{height:20px;width:290px}div.vis-configuration{display:block;float:left;font-size:12px;position:relative}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper:after{clear:both;content:\"\";display:block}div.vis-configuration.vis-config-option-container{background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;display:block;left:10px;margin-top:20px;padding-left:5px;width:495px}div.vis-configuration.vis-config-button{background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;cursor:pointer;display:block;height:25px;left:10px;line-height:25px;margin-bottom:30px;margin-top:20px;padding-left:5px;vertical-align:middle;width:495px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;height:25px;line-height:25px;vertical-align:middle;width:495px}div.vis-configuration.vis-config-item.vis-config-s2{background-color:#f7f8fa;border-radius:3px;left:10px;padding-left:5px}div.vis-configuration.vis-config-item.vis-config-s3{background-color:#e4e9f0;border-radius:3px;left:20px;padding-left:5px}div.vis-configuration.vis-config-item.vis-config-s4{background-color:#cfd8e6;border-radius:3px;left:30px;padding-left:5px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{height:25px;line-height:25px;width:120px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{border:1px solid #444;border-radius:2px;cursor:pointer;height:19px;margin:0;padding:0;top:1px;width:30px}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{margin:0;padding:1px;pointer-events:none;position:relative;top:-5px;width:60px}input.vis-configuration.vis-config-range{-webkit-appearance:none;background-color:transparent;border:0 solid #fff;height:20px;width:300px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(180deg,#dedede 0,#c8c8c8 99%);border:1px solid #999;border-radius:3px;box-shadow:0 0 3px 0 #aaa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#dedede\",endColorstr=\"#c8c8c8\",GradientType=0);height:5px;width:300px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2,#385380);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(180deg,#3876c2 0,#385380);border:1px solid #14334b;border-radius:50%;box-shadow:0 0 1px 0 #111927;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#3876c2\",endColorstr=\"#385380\",GradientType=0);height:17px;margin-top:-7px;width:17px}input.vis-configuration.vis-config-range:focus{outline:none}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(180deg,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#9d9d9d\",endColorstr=\"#c8c8c8\",GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(180deg,#dedede 0,#c8c8c8 99%);border:1px solid #999;border-radius:3px;box-shadow:0 0 3px 0 #aaa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#dedede\",endColorstr=\"#c8c8c8\",GradientType=0);height:10px;width:300px}input.vis-configuration.vis-config-range::-moz-range-thumb{background:#385380;border:none;border-radius:50%;height:16px;width:16px}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{background:transparent;border-color:transparent;border-width:6px 0;color:transparent;height:5px;width:300px}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{background:#385380;border:none;border-radius:50%;height:16px;width:16px}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{background:rgba(57,76,89,.85);border:2px solid #f2faff;border-radius:4px;color:#fff;font-size:14px;height:30px;line-height:30px;position:absolute;text-align:center;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:150px}.vis-configuration-popup:after,.vis-configuration-popup:before{border:solid transparent;content:\" \";height:0;left:100%;pointer-events:none;position:absolute;top:50%;width:0}.vis-configuration-popup:after{border-color:rgba(136,183,213,0) rgba(136,183,213,0) rgba(136,183,213,0) rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0) rgba(194,225,245,0) rgba(194,225,245,0) #f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;box-shadow:3px 3px 10px rgba(0,0,0,.2);color:#000;font-family:verdana;font-size:14px;padding:5px;pointer-events:none;position:absolute;visibility:hidden;white-space:nowrap;z-index:5}div.vis-network div.vis-navigation div.vis-button{-webkit-touch-callout:none;background-position:2px 2px;background-repeat:no-repeat;-moz-border-radius:17px;border-radius:17px;cursor:pointer;display:inline-block;height:34px;position:absolute;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:34px}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABphJREFUeNqcV2twU9cR/nbPlVTHxpKRbNnBLyEbPyJisLEcPwgwUMKQtjNJAzNJZkgNNJOmJaZAaDKlxaXDTIBAcJtOOzSYKSkdiimhAdIMjyT4bYgBYxA2BgcUQPLrCiGDR4qt2x+yXTASFt1/957d7zt3z3d39xDCMQWUfgAz/RI/T4pSTAJpAGL8rECAXX7QFQGq9wOHOxYO1oCgjAdJj1wtB095Giv9TFuZAIWHAziATMPhTAwiHgUkYPXFJu92lMP/2MTpB1AKUCVEgNAcleUo1M+2F8TO6crSTncb1QleAOj2OTSX3Ge1p+Va42m5JrnzbnsCE8Ov+EHgpa0LPLvCJjZ/whuIlN8wAcXG+e1LUn9hm238QU84p1Ld83nsXvuO7Lq+LzKYGAT6/dn58m/HJTYf4O3EShkT8Irpzab1Uz9sGevT5+tWn+j6NB4A5hp/5NSr43xjfd5rW5tT9e3OAhCBiCua5/WsDEls/hdvYklZSwDefmrT8eXmtzuDkb5YZ33p9ndylICAVjWxf39xw/5g5Luv/9H84ZWNcwNEypZT87rXjqyJB85UYDMJYN3U7UdLJ6/6JlgqV517teRqf9uTlug8e1zEk27HgD22o98WsTBh8fWxvjm6ApdONbGvse8LM5NUPOm1Cfabuz3nACAgxX0QEFTJAnjNvLJ+Sepb14KRHnN+Ev+1XJOhZs3Qu1mbG97J2NQgsXroa1dtxrGuf8cHi1mUtPTay0lv1DMJSCRVLtoX+FgGgDQNysBAcez89l9nbbsQSji7rlXkEhjPxb/QatHOcFu0M9zz419oFSRhj/3PuaHiyqasv1Con9NGxHAYUsoCxAqImbYSgCWmFbZQwdsur7N0eC4m6tT6/jUZ750Zeb82c+OZGLWh/2p/W+Kfrmy0hIp/aVKpTSIJEqu2QgFx2iE8CwDp0RbH7Ljng/4yXr+XT3QdyhYsodS0slGr0g2OrEUK7eCrKW82SqzCVz3/yfb6vRwM4xn9rN7JkRkOQRLmfJn2LBPxQjDBqp9lD7XbX7X8pKTP160zR2bdeiX5jYeU/nLSTztNkem3XL5eXbltRUkonBxdgZ2IIUmahUxERQSCVT+rK5hzQ89xQ6P8VaaK1f5VmRvqQ4G+lba+nlnlb5brMhvlk7FBiaPzuwQEmEQhg5BOxMjWTncHc2501cQLkjDTsMCWpyuRQxFP0xXIJfp5FyVW4Zy7KajC06ItbiIGg6ZITBxDxIgbrr1jTSM0fibGIHz8O9sKK0GAibEua9spANh4aY2VmcEg+DEkiBgR/L2hYFgGtcErkQQAMVJgBxyy9hboZzv32v+Kpr7qbEECTAIMAoaJa3qPTmNiiAAgJAjk6J5xhu6HDAIgQYGLmI29PocmMcI8MNYvT1ckfzD9H/ub5br4e4Me9WfOKqtyX6Ud2cwC449PRamifDm6Auc0rTXokci+Xo1EAgBckiDuYGLjpTvntcGIA+SFcp6uUAaAI879VhWrRteYAqn/edq758brXJ1327QMhgJcZjA3EBjNrgZjOG1PkAjyTGENMjZPq5ECQ0MDE9ERBqFZrk0OJ3i4x/7vyIjBxGERt3takgVJEAp9xq3f769WiPDNvSsJdT3HDOEASPelmoBRYT3Kzt5uMtwauJEgSOCpwrk1DIJCoNUMwj9v7MweP9XSQ8/hJPp496fZTAICvLqcyv2B7nRbrgCA03JN5h8ub7A8VqpB437xHvsOy3l3cyaB4L2uqxhti1WLMcSgZQCw7+bOooO3Pk4JBZIYYXISMV5sKH59UePM10GESRGpIf/bE92HU452HywSJIGIllctrhp6YAK5+fHds0lLtJFMXNwkV6fFqA29mROefqiMJj1h6um4a5vY/92dKGaBxIhU5zJTWW2cJmEgGOmeb3c8FxAfb9mdf2RzyGGv5MvU7QwuEySwKHFp/c/M71zA/2F7b1RajnYdLAqMukMVu2YcfmDYE2MD7H+7/Xlq6cRIJqm4zXM+qd3TGjVBir43KSLlXjiELe5TsX+3/yW/ST45PaAHbKmccWh12AP93JNZywj0kSABIobpiXRHjtZ6faout2tyZMadGLXBCxBcvl6NfaAz+tKdFmObpzWl2+tIIBACYy0t/yj34M7HvsKUK+CGassvicX7alYDwwq+vykIEqPVa+Q9gdYk5+V+UE7lj3+FGbuBM/X5JUT8QwIVSSSZiTgmoFR2MfiqYFFPfjpkyrfWPopwxP47AP1pK1g9/dqeAAAAAElFTkSuQmCC\");bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABpdJREFUeNqcV21QlNcVfp5zX9ikoAvLEsAIIgsoHwpqWAQUNKLNaNv8iZ1JMkNG6/Qj/dDUyCSTtCHpmEkwVk3TToZRMjXj5MOG2KidjIkxQYSAQUAtX6IgIN8su8KCoOzbH4sk4q5g77/33uee555z7rnneYmZDB2MKcJKlyYbqOsZVIgGEOgSHQoy4AKbFFjqAo5dWn/rNAh9OpO852oeJHYxtrmEu4WALhMbxG2ZE9uFAlImDRLY/t/y0b3Ig+u+iWOKsAlgIZSb0OIf15kWtKo1NXh1d5xxiSPEN2wUAHrGOg11jirjWVtJyFnb6YgrzoYwocClu0DI5guPDb43Y2LLp/Iaqf9JCGSErGvIifxd7aqQn/TOJCvFvZ8Hf9haEH+m/6sFQgHBv1Sts/15WmJLkeyl6FuFwFPzny1/ZdE7Nfg/xhv1uUmH2w6kggQp+yqze7d5JbZ8Im+KpucSwI6EN7/cYtlxZarBCts3ptfrtq9odjaGKihE+sV0vRC3u8RqWmmbij149W+Wd5p2rnET6bsqsntyb6+pO3KqkE8FvLxo74lNUX9s9uTJb8/9fG2L81KoogJFYfCm3b9usNq0MXxzw1RsUkDqQICPqf/b/q8sQi3j4WdmtV47OFgNAO6r+DEUFAtFAc9YtpXmRP6hxVsI24cvhyoqnFtrK6jM7isgBa3Dl0O94TeGb255MvzXpUIFjVrhxo/dzgoARBuwFQJkBK9reCnurxfvXX8CRW3yW1G749vT2Br7ysW0oNX1pKDTPG+rm1gHRbibAHLm/7522sKnQCZqFgCUaBCqaS/bEw9vqtWoQROf3dBBiT6KTACImZ3YueqhDdOWjDbFQ4IzIl4elNUX5begU1HD6lPRmULKeghhDcpqnUmZuD3+nkgTH6gZEE9ctlZSoGmG9UIynSCsQVndMyX+IZGiBoHMjHh2SreCglClaSBiSEG8cYnD24bv7CWms/3FocO3hnw13plTggAFb196NdlPM44tC0zrSg5ItXmyEz070UEKCMRqQgkkBQ9NvL2eSJ+revoJTORSpoT6do4/7/7UShBFHQexM+HdfyUHWO8iN/uaRzX3/QjUSLlnqM72F4cCRIY5u9Zf+Y+BAv4AvzpkQ7WAIBRujA/7Vg6cia9xlId6InafVEAAGnQMUCSkb6zTMPdBy8hU3JjrphIq+CrD+Mvxeyumrr+4IH9y7o2GF5eDghuuGx4L2zbWZ9Dc0RoQRbkkFNRdP2/0BH7EtLJLKCjr+zqh2l5u8haZ847vTBW24kRFQXKAtcsT5oqz3igQENIoECkjBJUDZSGewBlBj/ammjLrdX1c/t70ero34gMte9IByLLAjPrUwKweT5jawQshdIuGMiF5XEBU2koivBl9NeEfJeYHwuxtI81zPrn2z6ip60c6DkV1jLTOCTaE2HNjd5Z4s9MwWBOhqEHp/I9cWDtUrJNoHm4KO9P7hdnTBoMYXI8Gb6gVCg63FS53jg9O5tA57tSOdHywnCAygrJrfcTgUe5U2cvNHSPtYYoKCWlrTgsIneB2AfFR+4F4b6f9ZdTzF6P8Ytud407/dy/nL7k9X9i8J9l5y+Ef6RfbnjPvWa8N5suez+KFCgqyPY95Lnd3stv2AcBZ2+mFbze+lui1xc3dXCUUlPafXNx4/aKxcajWWNp/MklRw8/mPFntbd+h1oLE847KhQQxejVg36QQqD0MPTzHv42Ux+uGasJNBnPfwllJd71kkX7RQ3WDNf7dox3BLcNNs6vt34bbbvYHJhlTGp6O+JVHb0/2HJtX1PH+aqECqG/5YN1nlXcokGvvO6vCc4x+QskotxVHB/qa+xbOWuzw8NB3nuo+Ht0z2hHsuGU3GrWAoZfi3jrxgHpw3BPpobaCH7vbqOw6mHI836vYW3Eqcq9AtioqbJy7ufQ3lhfu8sR+s9+3vL8klACsQSu7AnxMY1MxH7YXJp7oPpLulrrj+9575Ni2aeVt1teWfEWfHQLCaspseHzOU7VWU+aM5G2NoyL4i+6j8XWDNQsmGsKu/cv+nTtjQb/mm7hfENyvqEAK5v8opjPJaL26KGBpd5TfguuBvuZRgBgY6zO0jlyZXXe9JqR+8MK8ntHOMHfHIkhu2b/0yIH7/oXJ0yFlxYnPUdRbvuILgO7+y+91l6Ka6M+cnCf4fMSypXvymHf/vzBTD3CuNGUFKT8lmK5Rs5ASqKiBlAGBXFaiSuni0fkp1pJ7Ed4e/xsAqLk46EWsG1EAAAAASUVORK5CYII=\");bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABt5JREFUeNqsl2lUlOcVx//3Pi9DZRsGBgYiS2RYBQKIjAhEJW4pNrXNMbZpWtTGNkttYmJMG5soSZckRk+0p+dYPYY0Gk0ihlhRj63GhVUgBhDD5oIOy8AAMwzD4lCYtx+GqCQKuNyP7/Pc+3u2+7/3JUzEZFBYLh62S7yIZDmVBEIBqOwsQ4DNdtBFASq2A4cuZAwVgCCPF5LGHM0Chz+E1XamzUyAzCMO7IhMI+5MDCK+HpCANd+U2rYgC/Y7BoflYgVA2RAOoNYtyjDTe45+hk96e5QywaJR+NsAwDhocK61VCjLTYWaclNB0OW+en8mhl22g8C/rn7U+uGEwdov+C0i+Q0mIFWzoD7zwVU1czQ/6pjIreR3HPX5VL9jalHXiQgmBoH+XLHAtH5csDaXtxDLLzIBv5jyfOmG2H9U4S7snbpX43KaPpgBIhDx1rPzOlbfPC5GQT/nd1mS1zABa6PfPf5y5F/rcJeWpp7fPkly6f7KXBRCoOSATFfXll19x74HDsvFCghsJAG8HrvlvytCXm7EPVqc5wyzp5NX15muE1omKXXyMnd9yy5r5Q3wPghvJzrLAlimXV38+7D1DbhPFq1M6O4b6rPVWKsCBfHi5EWWv9TkQBYAEPpLvERMC9N8FtRvjt9dPl6wwo5jPvuas7WV5jNqEjz8wA+CBsaan+w9x1hrrXJtuaZX97ooLfqPLCUEGRR+iOwAsF2X98Uc30W3fb02u41frVqeVmo6FUkkwCAwCWxJ2Ls/0TPFNBb8TNdp9WvnVz4OAKdmX2QOzcMsAAjziDGMBd3asCF6SXHyknJTfqQTK+zpvhnVKT5zawCgzFTgN94pJXvP7gxxjTAIkpB+MnSWRMQZYEDnPVt/K4ejbZ/77726Lb6h95tAAiPELaJ1bcTbRfGeM8xv1azWSeyEa0P9igk+Nr1+oNFfkpwzJCJKIQA679ntN08yDXYo3qh+LuUrc0E4EcNL4dP7VNDzpU8FP3vpekoQQ5CEw4bPdEfa9+sAgEZUmkmAAAS5hLQ9p11XGO+pM8V5JLUfMeQARDMlEMKIGFOVCZYb0C7Fz0oeXmIZ6nZzYoV9od/jVS+GbahUOnn9b7T6sEOviUGyA8bMDlUa0W79wBW/bZf+lrY98cDBUI8YCxGDgHCJiVVEDN8R7QWAE8Z/+1mGut2i3eP1r0S+XRztkdBzq6NbF7WpbF3UprKxjvfHxbrfttla/QBArVDbJJIAQCURMRg8ugrKIAKBSNxzHtN3VdmxY0iQYSZmTeegwTlgknYAAB7RZBh2Nm7urbeeC1r19ROT52kWn3shfH2Fu1AO3RxjY/0fdac7/hPPJMDE11GC+HpBJmIEuAS3Oa6w01lybMbMgvgCE6O255zy24DeCr/Bvckn9+u8ZjXYIYvjxoMJy8oeXZrT9GHIqMWTwA2oI6cFMeDIcAiSEOyibXsmZG0hAFzuq1OyY6xBAnMJgdPOmks08zU/bbsB9x18P37PqS/b8+o/a96ZcLm3PmBH46Z5x40HW1eFvl4Uq0w0MwiCBOb7/qTsd6GvVY537DXWas1Iw1AiNJnOgwJi+bXhAbE08OnvaXSIW0TvYw88eaF/uM/WNdju3m5r9TlhPBzVNNDoPGC/5tRma/GJ80xqjPPUjVuvP2narrMOWd1Jlv/E1fN782UiNPZf9C/qOKa+ndOz2j+cz046sn+6KrVOsODirpOxld0lUxmEBK/ktvGgFd2l6taBZn9BAtEz5xYIvAn4/8rFKkgstAyZ6Yf+S67ezlkiSU73XXRV6xqh93TyssR4JF75efBvymLdE03jgT/Wb5tutLWpGbTm7wHZxQQAT+yDuKLyHRIk4cnAZ4pfCF9/HvfR9uh3xBxtz00BANsVDylnac6wAICaHMiBmW5NRLy4trcq0MtZ3RnpHme5H9AvjYeCc1t3pzMJgOSVnyw4eHZUB9Kyu68iMFPpysSppab8UJVC3Rnp/pDlXqF7mnYsdKQbv7cr6fDGW/Zczbt6jgUtV6kIlFxuyg/tH+6zJXmlGe8G+mlzdsyB1j3pTAwZ9q3/Sspbc9tmDwD0H3UffXCFlyuTlFpnPRdYb612c5c8+idPCu6fCLDKUubzsf6fSaWm0wmO9hbvZU8fDR2zoZ97OuppAu0UJEDEmOISZohT6q7Gek5rD3GN6FEp1DaAYB7sdNYPXPao7anS1Fmrg402g7+jYhGIaOXOaQc+uONfmCwZXJIf8xKx2KRgxYgOS+CROuyoyQKCxIhkOr4T6JWgxGnvZ1HWnf/CfHcBXxcnpRHxYwRKkUjSErFKkAQiNjP4kmBRTHbKm5KkKxwL+K39fwDX1XGF8ct++QAAAABJRU5ErkJggg==\");bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABs1JREFUeNqsl3tQlOcVxp9z3m+XygK7C4sLxkW5o4CAkYssFSkRjabjJEOSJm1IbZx2krapiZdeprW0NVVJ0pqMM0kYJQlqkoZImGioE1ItiCAgIsFwE4Es99vCslwChf36xy5EW1A0Pn9+73fO772e93kJC5EMCszFd20SbyFZNpJAAACtjWUI8KAN1CRAJTbg9LXNU+dBkG+Xkm7Zmg4OWoUdNqZXmQCZHQFsz0yOcCYGEc8mJGDnl2UTh5AO2x2DA3OxDaAsCDvQ32VF11qP9aZYz6SeFeooi17pPQEAvZNdTnWWKnWFuVhfYT7v0zza4M3EsMk2EPgnNZusby8Y7P8x/5lI/gMTYNSnNKQt/0Xtev1DfQtZlaK+M54fmDJXXhg4G8zEINBfqlLMe28L9s/lQ8Tyr5iAJ32fK/tj+OFq3IUO1O+JyGk7GgsiEPFrlQ/07bixXdwEPckHWZJ3MgG7Qw9+/mLIS/W4SyXoNvQskpyHLg1e8CNQ3NI0laoje7Tg/8CBudgGgQwSwO/DD322ze/FFnxLRWhiBzUK94GLA2f9mSTjfU+7mjqyrVe+AX8I4aGgShbA0/47Sn4ZuLcR90ih6qih0anRiVprtUEQb43bYtlXmwNZAEDAj/ACMW1M8ExpeDXyWMVCEl4yF7vntR/zLeov8JJlWfZR+Y3N92+cx/reOmu1quNrk27EWW0xvWspJcigoNNkA4C3Yk59vH7xltvu3ktDxe7PX34ilQCQfeci1j2xfn94ZrGCneY8uxcHCnW/vbr9EQD4d2ITc8AprAOAQLewroVAAaB8oMiLiRHvmVy7znNTjWCFrXKoJOSHFQ+kvnF9f+jco07s91MFdwmSkHQuYB0T8WYwIcYj0bTQdRufGlFKJMFVaCb/GvZW6aGI4yeXOwd2mr/u05zsyDY+W5X64Nm+fO85NpuJiCFJTpslIoonADEeiT2zIzIXuh+o25PQNtbsNVMOBUn2g08MiSTHN3uZjNTEDr4dnX/6H+1H/XPasmKvW+sMGfW/MXzende4K3h/ibvSYxIAItyie/K7cgCitQxCIBFjpTrKMgM+WPfrhLbxFi9iMQtlYjAJSCSBSYBAIPBNI3p86TPXj8bk56R4PVylFE626uFLQc9efiTVPDmgBIAAtzALEYNBQRITa4kYix21FwBax655CVagPLk7806Pj1qo/7MraF/FQ14/aMhszYhvGqn3KTef89rklWrSKXUTkn3mtJK9Bzf3XJA0e/PcrdgxIwSCDPmbZMQgABJkDBKzvn+yy2npIv9xAPB1Ceo2jTZ7Gc8afipIgEhAkACDwcSQQZBIIGnx5it7gg+U3wgcnbZKR1r+FnW+v2DVtDwtXCXNSKz797oAwDzZ7ySRAIBBFsTXmBh1w1+oZ4J3h+wv9lUFdbMDOrO+5IAqWIGZthuV13nC77nKRx8r7PssyibLIkoT1/h65HsfzWyu5tF6NYNB4EYJzKUETqgcLNVv0D/cDQBrNAnm9+LOfTLfNB5u2hf5z+6TMexYji+tVdrM5leMbWOtSwQx/F1C2rcuebIqwSO568a4WmuN3mEYSiUi+pRl2l1pLvYBsKArUKVwnZRYgdHpMWVG4+/WXhwoDBXE7OmkHzJ6JNemLfv51bniGqzVPoIkyLbpfK7ZMFIkE6FlrMn7Ql+BbiHg+zXGbgLjylDpyosD58KZmKM0cfWHI9//aD5o1VCZrnO83VuQQOja5PMCfwK8n3K2ChIbLVOD9KB36le3A+u/s2Q81C2yRavQmQNdVnamLnmq4nHD9jpB0rwm77jpjTW9E906Bu18fWlWCQHAox9CtGoXTwmS8IThZyXPB+29inuoE6bMsDM9ufEAMNHqJuU8ljMtAKA2B7IhzaWNiLfWjVQb3J10/SGuEZZ7Af1X7+lluZ3HkpgEQPL291M+qbzJgXQcG60ypKlVTGwsMxcFaJW6/hDXVZZvCz3RlrmRiQHwy9nRn2bM6bnas4cLfH6s1RIorsJcFDA2PToR7Z7QezfQD9qzwvI6TyTZC47ttXeiT+2c1+wBgOndoTPLt7mrmCRjvfULQ4O1xsVVchu7b9GysYUAqy3lnsdNb0aXmQuj7PYWL2etuRl6S0OfXLjiGQIdEY6K5esc2BWhjvkqXLO6x08VPKxV6iYAwuBkv5NpvNmtbrhaX2+tWdY70eVNINhtLW0/sjrv6B0/YdJlcGlR2AvE4hUlKwHQ7BU5cz8LRx0HaPY7gXb53L/67+mUfudPmP/twOWS6AQi/j6B4iWS/IlYK+yGYJDB1wWLErLRKd/omOJbAWf03wEAyO9m+/TtS3AAAAAASUVORK5CYII=\");bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABiBJREFUeNqkV2tQlOcVfp7zvgvDRe66y8htXUBR1GoFI+BtFJvRtjPJBGeaH2a8DGmbttgSTWbSJEw6TWOsrbbpTIeJZGqaTipTa6LJZDTVUTYQdNAohoso6qLucnERN0Axcb/8+HaJUHDX9Pz6vnnPe57vXJ5zzkeEIwaYcwBL/VrW0TCKqZANINEvBhSk3w9eUmC9HzjcsfarOhBGKJN84GkVJHcetvqFu4SAIYELYlpm4LpQQMqoQQKVnzeO7EYV/A8NnHMAGwHWQJmAjtg895LkFa7FU1d258UvGLBGpI4AQM9dd2TrwNn4016n9bS3LqNzsD1VKPAbfhCyqflR31thAzv+La+QxotCoNi6pn1D1s9aVli/3xtOVk72fjT1XVf17E9uHZspFBD8zdk13pdCAjsOyG6KUSEEnrT/tPHluW+cw7eQ19q2z6/t2rsYJEjZ07S6d+ukwI5/yQ7RxnYC2DZnx8dbHNs6xxs85T2R9GprZcmVwYs2BYWsmBzP83m7nIVJS73jdfdd+7PjjUu/XWUCGTtPre7ZHjxTY3Kq8DoV8Ou5u49snPGrKxN58syZ9aVXBztsigoUBd+Xt2NbfZ8llaVvah+vOz9hcX+CJenWp7eOOYS6ePpTU1w39vk+AwCzFPdDQbFGFPCUY2v9hqxfXJ0shNeHLtsUFc6UequbVvdVkwLX0GXbZPpl6Zuu/ij9x/VCBU1dU7bfdFYAIDsSFRCgeOqa9hfy/nDhwfwTKOrRd0U95n0iqch9+cKS5JVtpMCdkllhAhugCHcRwAb7z1tCEp8CCXAWAJRoCFXIYnti+sYWTQ0tll0wQMk+hGUAkBOX714xbV1IyuhxHhIMC/iR5OV9M2JmuhU1Vh7PXiakrIUQhcnLXeHQxPT4GyAtFqgwgAPF5iIFWkeu1SSLCKAweXn3/ZR5rXV7SddQpy3YDoNems9qTI5hGCitm1MOAAx0aaFCerTd84zjBed3Egq9ADA/rqD7Q3ctQC4REDmkYHb8goGgsR2tz5V0DV+xUdQoqAQ81RybU4IgFWgACgpaLLCIBUo0bv63y/aXy6+WBHWz4/IHSIGAuVooiaRgWqD3AsDVoQ6bEgtOrfJUhwrf0WUtk+r8sL6wvHvk5ijVUiJSRrQZuURtfoGMuaCoRyfP/yMy0XykgAA0DPRTxNp31x2ZFuUYBgB7bK7HNdhpKz6WXq6oQCooKghMKhkgji77vBoA1jkXlAvVfRQjFMUcmxSkRWd6gpjeu32R2kxTvyhKh1DQeud8fFBh26zfOe0xuR4JgAbzywCoRSzfeDUKatJKUQK+CjKiHZ6nZ2xzBnU7B9vixTy7qCHSQEhJU3+DtdT6mAcAFiWUeP/xyPH3Jwrfo3XzysemRcEA8F5RY8h6aPE1WwMLQ4OQ/EBANHmdGWHlzZyxk3ayB0m771yGooYy+KE0l35x0iBxZehS6ie9R1PCMaDvCzWDXA4hZ283ptwcvp6qqDBnyao6AWEQrBQQ/7y+d3YoA+NBTAaElo973p8tVFCQyipW+c3pdNu7BwBOe+tm/eniK/kPFWowpMfvuKrzzw80zSKIkWsJe0bHYu163BNwMwDsv7G36ODNtzMnM5IWZfeQgscbisvLPl1aDhLTo7I8k+n/p+dw5pGeg0WKGiS31K6vvTdmA7nx9uDZ9A3xMUIpbvSezE6MSOmbNWXewHhD6dH23o7BlqQvvrwTK6KQFpXl2WyvcE6LTB2eCPSdrurvmcUnO/cVfPD6pMteyfGs3QKpUFQoS9tU/xPH8xe+Tdd693pN/pHug0Xmqntvz1uLDo9Z9v5nnrn+dvujrI1JMUJd3OY7n97ua46douOGpkdlDoUDeG7g1NS/u/5a0Og9scCsB+ysWXSoMuyFftWJvM0E31SBjmWPznHPjy+8NjdhYfeMmJl3EiNSRgCi/25fpGu4M671zjlrm685s2fEnUoQ5lrLLW8uPLj3oX9hqgxIw8n8X1LU7yMkItCHzREZrGQV6ONmy5TggHk247sL/1jFqof/hRn/AWfqC0pI+QHBIk3tICXRrFTpF8hlJaqefh6yFxQ6HwQYlK8HAKyt3WsWxl7fAAAAAElFTkSuQmCC\");bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABV5JREFUeNq0l2tQVVUYht/3W/vACMr16IFRQDiAgChpgiikMqY1WjnN9KsfGOXYTOVgkvbDUsZuXrK0qZmGUSvNspjI8TZOmo6AGBoZYly8YB6Qw80DBwQ6jJ3dj30OZZmiwvtv77XW96y91l7v9y1iMNLBuCI84tZkIXU9gwqxAILdokNBOtzgJQWWuYEDFxfcLAGh3y0k79iaD4mfjOVu4WYhoItngBiR6RkuFJAyEJBA3m/lri3Ih/uewXFFyAG4A8oAWkcm2meEzrFNH53Vkhg4xWnxCXcBQGu/3bfGeTbwjKPUcsZRElnfUxcuFLh1Nwh5vurx7s8GDbZ+L+tI/U0hkGGZX5c9/pXqOZYn2gazK8Vth0fvsRUknbx+bIJQQPCts/Mda+4KthbJFoqeKwSejX6pfO2kjytxH1pfuyqlsGH7dJAgZWvFo23L/9muboF+JxtE0/OEwMqJG46uSHinFvepTPO8lhGaX+fPHSdjCKaPy/b3v7az58h/wHFFyIHCRirgjUlbfsiJWXEFD6iUoOkdQaaQ6z9dP2YVahljF4+yXdvZ/evf4G+hQk2sEAUsti4vWxa35gKGSBMDp3T23OxxVXdXRijKovSFzrerC6ELAMT6IhcCZIyeX7c68YPzGGLlxq89PyM0q5YU2M1RuQAg0EERbiaA7Ohl1RgmPTM2p1qjBk1Mm6GDErsfswAgLiDZPmfMwrbhAqeHzm6P8Z9gV9SQdTx2lpCyAEKkhc62YZiVEjTdRgo0zXeBRnImAaSFzm7xdjjtOBGyvmZVZkNvfZjXDhU14+BToFEDKRAQpAJ0HRTjP6XHpYUKEX7RzS9bV5c+FJTmAICUgNSWQ/ZCgJwhIOJIQVLgFKcXvKHm9cyGvithFDUAFQqECho1CBUIggYapAJ1QEFBExNMYoISDU1/NIR9cvndTG/c2IBkp2fC8ZpQgknBGI/3AsDvvRfDlJhwem5zwYMs7VNlaUtbXE1h3mezj9mlGSsXrBkzkFsGKGoDmedBJLfLjxQQgAYdHRSxtPfbfceNsPYBQPTI+GZbT31YxrGIpYoKpIKigkAgFOggNBrbQBBCBaEM2L+iGGmTgnF+Uc1epqO/3VejAoAOUZSLQkFN17lAb4eVCe+VRvvHN4sH6t1feqAmMUGoPHvvhdLzTjzfKoj0sza/GLOy1Bu3vqc20Pgl5YIGkVOEZFZ0nLLMszzdDADTgjIdX6Uf3zfUx6m6u8riKRhOCcmDAqLCURo53Oe4rrsyUlGD0nlIqubdKNZJXOm9FH6y7Yh5uKBnO8vNTX2N4YoKE2fMLREQOsE8AfFN4/ak4QIfbd2XJFRQkLx85ruN7NTp2AoAZxwlCR9dWJc81NDdtoLkc86KBIJwXQ3aOpCPqwuhR2SPbCBlUc2NyogQX3N7wqgU51BAf2w9EFXUtCtLqADqS76ev6/ilgrk2q6esxHZgf5CySh3FMcG+5jbE0ZNdj4odHdDwWPGcZNNO1MPbrxtzdW4s+tI5HPBwQTTzziKY3v/7HGlhmS23g90T+OO5L1Nu7MMw3Fv/Tx1f97/FnsAYPui8/D4nBB/oZZR230uoq67auQoLaB37Iio3sEAK52nR39p+zS13HFiilHeYtOOabdC71jQzz2R+ALBbcrjWNF+cfaUwLSrk4KmtsT4T+gK9jG7AKKjv93X1lcfUNNVaantropqddnDCcIoa7lk29S92+/5CpOvQ04VJ79KUe/7iI/Hh40U6c3PyuPjhmWKN8G8Fvnw1A/zmX/vV5h/T+CXstRMUp4kOFOjZiUlWBkFQYdALitRZXRzf3RqWumdgF79NQDBOa2V/iYSHAAAAABJRU5ErkJggg==\");bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABptJREFUeNqsl21QlNcVx///cx9hIipuAJHasgHlRdw0xay7yK7smg6sb2DSdtqZduLUNENmOk1tQuM4U7UzTvshSRlFZzoNCWSSSTJp+6VNkLCAeQHBoCCgqNBE0wUqL+KuwIiiZZ9+eHa3aAS3Sf8zO8/L3nt+95x7z7n3YWlpKUQEJAEgch9+Jola9xEC2ADBVgAOKqwCYAqKDgUJBIHPBWwFWQNdbyZFBwAC0GGIAHQSj3/8HHRdhzYbdDfwg4IjAsGvICgXAroYBiCEDkBBACBZoyST4gDwQqh7mQ4cEkhQD0EBIIggRMQAh2EiEvEYAGrdR3YSqIYCIEDaotVDeYnu/ryEjSOr43PHl8WmTBPA6PRQ7IWJrvhT/ubkU/7m1EvX+1KEUh7Ug+WkPEXgdUSkR+xrd0NJ4qjr8AEI9pGAI7mo78mHfnF+Y/K2K7iHUheuvJG6cOUNz/LvDwPobrpSl/Ruf2VOy9UPs4RSTSANwH4Y449EVdnt9ojHIeghCHYLgR+n/7zt4Np32tIWZU4hSpnjVk1t/caPfOO3/f++MNH5TVJcisoEoo4ksgbsXwYfdR1+kQplQuCFNS82Pp/9+158RTkTC0ce0OKutQeOp5PME0qcUBqyBmwGOC8vz4AWVOyE4CUqYO/Dh+p3pj//Bb6mHllqCyxd8ODVT69+uFKoOYTSnzFg7SJpzHFNQYWiQrUIsCN9V+uOh375zz179pSGI1FSUuK12+2+aGDt7e3muro6T/h57969lZdvDrT+ZbA6n0B1nfPVN7e0PjMjIgIIdkEAR1JR329yDvaE0+l/hQKA1Wr1bd682SsikUW7K+O3PesTNvaSAiXaLhGBvO86RFEoJ4Adac+eDxsgiZKSEm9NTY3n5MmT5mjBHR0d5vr6es+mTZu8SqnI+x+s+Ol5jRo0auX1jtepQaEAADKWWIbcy7ZGUmb79u1eu93uI+mtra31HLj5TGDs9rBJICCNn1GRCKGCUJAUuzzw6CfbTB6Px7t27VofAG/YXl6Ceyw9LmvIN3UxZUafKRACWyCELcHVP3vk4fDabDZf+2N/D9g+fsLEEFSooFGDogZNFkBRgSCsTcWm066jgRAU4et/F5u9nxRosmCLRmE+QdgSXCNzhW/s9rDJ63wVJx77V+V8YS6UNaW8BdOcqzx+3Ujt0F8Bcr1GMIMU5CzJHZ+rg6IGCYV2PimoyIK6lzIWrxkPTVGmRoqJFCyLTZmeq4MB5f3BVADnbpcQkzStUQMAk0YKBPfzxlhA95NQQe43QBotBECAFFyZHo6dz6CKCizAPFPivzUWqxm2AqIgnwkFvZNn4uczGK3Hah7wpet98UZ85R8aKScIcXYEWpMLkx8fvleHpNjlAWtTsakQa0pVKGcJQqMGUqCHBvfdjp/gTP6xwFzg85PdyaH2J4SUowKiw3889e4KBACnT582W5uKTV2uusAdUFlgzBcFQoFGDT35HwW+82mhqaenxwwA4WtYfRNnUkMZUqsJpEkn8cXU5yktYw2JjsTCMQDwer0ekt6GhgZPUVGRd3fu7qjqdU9Mj7mlpcVD0tvS0uKxWCyVANB5rS3x8s3BFEUFgTTLtuZndQHLBMSfB6pyZtfqMDQ3NzfqTcJisficTqc3BI+8bxh9L8corarM3fnDoIT+rACAU/7m7MOfHbCEwQDQ2Njo6erqinqTOHfuXNjjiI23+ystZ8c7smmkWgVJcN++fRARfLDhlacEUqVEQ1nm77xPrHjSh/+Djo3WmN/s/6OHEOgIPr2h63tVuq5Dud1ukETWoK3zorkzTiiONn/TKlNM4lj24m+Pf13o2wOVHqGA5MsAXjKPrDaqnMvlQnjTzhy0Nlw0d5oI5p3yN62amrk+ve5B5+hXgb47WGX52+V3NgoFOvQKAGUkkTqcbZy5XC7XHYf4zEFr3aXU7jih5uidPPOtvsmzixZr8VMrHjBHddLsHj+Z9Fb/n9a1+T/JDaXey0IpEzEKkHnU8Jj79++PeEwSSimQRGP+Gz8j5DVFBVKQtjBj6JGlNt/D8Y+OpMdlTphiEqcB4tqtsVjfjUtLLkx0J/dOnjWPTg+lEARIEHwaQJVQIYggACC/qxi6rn8ZHL4XETSsf0MU1HOk/CFGYgAwskUqY5eBitRxzn7/a0V1EEBwdqkN6jPI7y4xPmHmC5unbWdQRMqP2d86qANOksU6gvmArNQRNClqABnQgYuK0krI+wCOAyH3DK/vqOXhaf3PAO7mIRjDNV25AAAAAElFTkSuQmCC\");bottom:50px;right:15px}div.vis-network div.vis-manipulation{background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff,#fcfcfc 48%,#fafafa 50%,#fcfcfc);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(180deg,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc);border:0 solid #d6d9d8;border-bottom:1px;box-sizing:content-box;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#fcfcfc\",GradientType=0);height:28px;left:0;padding-top:4px;position:absolute;top:0;width:100%}div.vis-network button.vis-edit-mode,div.vis-network div.vis-edit-mode{height:30px;left:0;position:absolute;top:5px}div.vis-network button.vis-close{-webkit-touch-callout:none;background-color:transparent;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC\");background-position:20px 3px;background-repeat:no-repeat;border:none;cursor:pointer;height:30px;position:absolute;right:0;top:0;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:30px}div.vis-network button.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode button.vis-button,div.vis-network div.vis-manipulation button.vis-button{-webkit-touch-callout:none;background-color:transparent;background-position:0 0;background-repeat:no-repeat;border:none;-moz-border-radius:15px;border-radius:15px;box-sizing:content-box;cursor:pointer;float:left;font-family:verdana;font-size:12px;height:24px;margin-left:10px;padding:0 8px;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation button.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation button.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation button.vis-button.vis-back{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC\")}div.vis-network div.vis-manipulation div.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-none{line-height:23px;padding:0}div.vis-network div.vis-manipulation div.notification{font-weight:700;margin:2px}div.vis-network div.vis-manipulation button.vis-button.vis-add{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg==\")}div.vis-network div.vis-edit-mode button.vis-button.vis-edit,div.vis-network div.vis-manipulation button.vis-button.vis-edit{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg==\")}div.vis-network div.vis-edit-mode button.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation button.vis-button.vis-connect{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg==\")}div.vis-network div.vis-manipulation button.vis-button.vis-delete{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII=\")}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{line-height:25px;margin:0 0 0 23px}div.vis-network div.vis-manipulation div.vis-separator-line{background-color:#bdbdbd;display:inline-block;float:left;height:21px;margin:0 7px 0 15px;width:1px}</style>\n",
              "            <script>/**\n",
              " * vis-network\n",
              " * https://visjs.github.io/vis-network/\n",
              " *\n",
              " * A dynamic, browser-based visualization library.\n",
              " *\n",
              " * @version 9.1.2\n",
              " * @date    2022-03-28T20:17:35.342Z\n",
              " *\n",
              " * @copyright (c) 2011-2017 Almende B.V, http://almende.com\n",
              " * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs\n",
              " *\n",
              " * @license\n",
              " * vis.js is dual licensed under both\n",
              " *\n",
              " *   1. The Apache 2.0 License\n",
              " *      http://www.apache.org/licenses/LICENSE-2.0\n",
              " *\n",
              " *   and\n",
              " *\n",
              " *   2. The MIT License\n",
              " *      http://opensource.org/licenses/MIT\n",
              " *\n",
              " * vis.js may be distributed under either license.\n",
              " */\n",
              "!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).vis=t.vis||{})}(this,(function(t){\"use strict\";var e=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},i=function(t){return t&&t.Math==Math&&t},n=i(\"object\"==typeof globalThis&&globalThis)||i(\"object\"==typeof window&&window)||i(\"object\"==typeof self&&self)||i(\"object\"==typeof e&&e)||function(){return this}()||Function(\"return this\")(),o=function(t){try{return!!t()}catch(t){return!0}},r=!o((function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")})),s=r,a=Function.prototype,h=a.apply,l=a.call,d=\"object\"==typeof Reflect&&Reflect.apply||(s?l.bind(h):function(){return l.apply(h,arguments)}),c=r,u=Function.prototype,f=u.bind,p=u.call,v=c&&f.bind(p,p),g=c?function(t){return t&&v(t)}:function(t){return t&&function(){return p.apply(t,arguments)}},y=function(t){return\"function\"==typeof t},m={},b=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),w=r,k=Function.prototype.call,_=w?k.bind(k):function(){return k.apply(k,arguments)},x={},E={}.propertyIsEnumerable,O=Object.getOwnPropertyDescriptor,C=O&&!E.call({1:2},1);x.f=C?function(t){var e=O(this,t);return!!e&&e.enumerable}:E;var S,T,M=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},P=g,D=P({}.toString),I=P(\"\".slice),B=function(t){return I(D(t),8,-1)},z=g,N=o,F=B,A=n.Object,j=z(\"\".split),R=N((function(){return!A(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==F(t)?j(t,\"\"):A(t)}:A,L=n.TypeError,H=function(t){if(null==t)throw L(\"Can't call method on \"+t);return t},W=R,q=H,V=function(t){return W(q(t))},U=y,Y=function(t){return\"object\"==typeof t?null!==t:U(t)},X={},G=X,K=n,$=y,Z=function(t){return $(t)?t:void 0},Q=function(t,e){return arguments.length<2?Z(G[t])||Z(K[t]):G[t]&&G[t][e]||K[t]&&K[t][e]},J=g({}.isPrototypeOf),tt=Q(\"navigator\",\"userAgent\")||\"\",et=n,it=tt,nt=et.process,ot=et.Deno,rt=nt&&nt.versions||ot&&ot.version,st=rt&&rt.v8;st&&(T=(S=st.split(\".\"))[0]>0&&S[0]<4?1:+(S[0]+S[1])),!T&&it&&(!(S=it.match(/Edge\\/(\\d+)/))||S[1]>=74)&&(S=it.match(/Chrome\\/(\\d+)/))&&(T=+S[1]);var at=T,ht=at,lt=o,dt=!!Object.getOwnPropertySymbols&&!lt((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&ht&&ht<41})),ct=dt&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator,ut=Q,ft=y,pt=J,vt=ct,gt=n.Object,yt=vt?function(t){return\"symbol\"==typeof t}:function(t){var e=ut(\"Symbol\");return ft(e)&&pt(e.prototype,gt(t))},mt=n.String,bt=function(t){try{return mt(t)}catch(t){return\"Object\"}},wt=y,kt=bt,_t=n.TypeError,xt=function(t){if(wt(t))return t;throw _t(kt(t)+\" is not a function\")},Et=xt,Ot=function(t,e){var i=t[e];return null==i?void 0:Et(i)},Ct=_,St=y,Tt=Y,Mt=n.TypeError,Pt={exports:{}},Dt=n,It=Object.defineProperty,Bt=function(t,e){try{It(Dt,t,{value:e,configurable:!0,writable:!0})}catch(i){Dt[t]=e}return e},zt=\"__core-js_shared__\",Nt=n[zt]||Bt(zt,{}),Ft=Nt;(Pt.exports=function(t,e){return Ft[t]||(Ft[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.21.1\",mode:\"pure\",copyright:\"© 2014-2022 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE\",source:\"https://github.com/zloirock/core-js\"});var At=H,jt=n.Object,Rt=function(t){return jt(At(t))},Lt=Rt,Ht=g({}.hasOwnProperty),Wt=Object.hasOwn||function(t,e){return Ht(Lt(t),e)},qt=g,Vt=0,Ut=Math.random(),Yt=qt(1..toString),Xt=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+Yt(++Vt+Ut,36)},Gt=n,Kt=Pt.exports,$t=Wt,Zt=Xt,Qt=dt,Jt=ct,te=Kt(\"wks\"),ee=Gt.Symbol,ie=ee&&ee.for,ne=Jt?ee:ee&&ee.withoutSetter||Zt,oe=function(t){if(!$t(te,t)||!Qt&&\"string\"!=typeof te[t]){var e=\"Symbol.\"+t;Qt&&$t(ee,t)?te[t]=ee[t]:te[t]=Jt&&ie?ie(e):ne(e)}return te[t]},re=_,se=Y,ae=yt,he=Ot,le=function(t,e){var i,n;if(\"string\"===e&&St(i=t.toString)&&!Tt(n=Ct(i,t)))return n;if(St(i=t.valueOf)&&!Tt(n=Ct(i,t)))return n;if(\"string\"!==e&&St(i=t.toString)&&!Tt(n=Ct(i,t)))return n;throw Mt(\"Can't convert object to primitive value\")},de=oe,ce=n.TypeError,ue=de(\"toPrimitive\"),fe=function(t,e){if(!se(t)||ae(t))return t;var i,n=he(t,ue);if(n){if(void 0===e&&(e=\"default\"),i=re(n,t,e),!se(i)||ae(i))return i;throw ce(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),le(t,e)},pe=yt,ve=function(t){var e=fe(t,\"string\");return pe(e)?e:e+\"\"},ge=Y,ye=n.document,me=ge(ye)&&ge(ye.createElement),be=function(t){return me?ye.createElement(t):{}},we=be,ke=!b&&!o((function(){return 7!=Object.defineProperty(we(\"div\"),\"a\",{get:function(){return 7}}).a})),_e=b,xe=_,Ee=x,Oe=M,Ce=V,Se=ve,Te=Wt,Me=ke,Pe=Object.getOwnPropertyDescriptor;m.f=_e?Pe:function(t,e){if(t=Ce(t),e=Se(e),Me)try{return Pe(t,e)}catch(t){}if(Te(t,e))return Oe(!xe(Ee.f,t,e),t[e])};var De=o,Ie=y,Be=/#|\\.prototype\\./,ze=function(t,e){var i=Fe[Ne(t)];return i==je||i!=Ae&&(Ie(e)?De(e):!!e)},Ne=ze.normalize=function(t){return String(t).replace(Be,\".\").toLowerCase()},Fe=ze.data={},Ae=ze.NATIVE=\"N\",je=ze.POLYFILL=\"P\",Re=ze,Le=xt,He=r,We=g(g.bind),qe=function(t,e){return Le(t),void 0===e?t:He?We(t,e):function(){return t.apply(e,arguments)}},Ve={},Ue=b&&o((function(){return 42!=Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype})),Ye=n,Xe=Y,Ge=Ye.String,Ke=Ye.TypeError,$e=function(t){if(Xe(t))return t;throw Ke(Ge(t)+\" is not an object\")},Ze=b,Qe=ke,Je=Ue,ti=$e,ei=ve,ii=n.TypeError,ni=Object.defineProperty,oi=Object.getOwnPropertyDescriptor,ri=\"enumerable\",si=\"configurable\",ai=\"writable\";Ve.f=Ze?Je?function(t,e,i){if(ti(t),e=ei(e),ti(i),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in i&&ai in i&&!i.writable){var n=oi(t,e);n&&n.writable&&(t[e]=i.value,i={configurable:si in i?i.configurable:n.configurable,enumerable:ri in i?i.enumerable:n.enumerable,writable:!1})}return ni(t,e,i)}:ni:function(t,e,i){if(ti(t),e=ei(e),ti(i),Qe)try{return ni(t,e,i)}catch(t){}if(\"get\"in i||\"set\"in i)throw ii(\"Accessors not supported\");return\"value\"in i&&(t[e]=i.value),t};var hi=Ve,li=M,di=b?function(t,e,i){return hi.f(t,e,li(1,i))}:function(t,e,i){return t[e]=i,t},ci=n,ui=d,fi=g,pi=y,vi=m.f,gi=Re,yi=X,mi=qe,bi=di,wi=Wt,ki=function(t){var e=function(i,n,o){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(i);case 2:return new t(i,n)}return new t(i,n,o)}return ui(t,this,arguments)};return e.prototype=t.prototype,e},_i=function(t,e){var i,n,o,r,s,a,h,l,d=t.target,c=t.global,u=t.stat,f=t.proto,p=c?ci:u?ci[d]:(ci[d]||{}).prototype,v=c?yi:yi[d]||bi(yi,d,{})[d],g=v.prototype;for(o in e)i=!gi(c?o:d+(u?\".\":\"#\")+o,t.forced)&&p&&wi(p,o),s=v[o],i&&(a=t.noTargetGet?(l=vi(p,o))&&l.value:p[o]),r=i&&a?a:e[o],i&&typeof s==typeof r||(h=t.bind&&i?mi(r,ci):t.wrap&&i?ki(r):f&&pi(r)?fi(r):r,(t.sham||r&&r.sham||s&&s.sham)&&bi(h,\"sham\",!0),bi(v,o,h),f&&(wi(yi,n=d+\"Prototype\")||bi(yi,n,{}),bi(yi[n],o,r),t.real&&g&&!g[o]&&bi(g,o,r)))},xi=Math.ceil,Ei=Math.floor,Oi=function(t){var e=+t;return e!=e||0===e?0:(e>0?Ei:xi)(e)},Ci=Oi,Si=Math.max,Ti=Math.min,Mi=function(t,e){var i=Ci(t);return i<0?Si(i+e,0):Ti(i,e)},Pi=Oi,Di=Math.min,Ii=function(t){return t>0?Di(Pi(t),9007199254740991):0},Bi=function(t){return Ii(t.length)},zi=V,Ni=Mi,Fi=Bi,Ai=function(t){return function(e,i,n){var o,r=zi(e),s=Fi(r),a=Ni(n,s);if(t&&i!=i){for(;s>a;)if((o=r[a++])!=o)return!0}else for(;s>a;a++)if((t||a in r)&&r[a]===i)return t||a||0;return!t&&-1}},ji={includes:Ai(!0),indexOf:Ai(!1)},Ri={},Li=Wt,Hi=V,Wi=ji.indexOf,qi=Ri,Vi=g([].push),Ui=function(t,e){var i,n=Hi(t),o=0,r=[];for(i in n)!Li(qi,i)&&Li(n,i)&&Vi(r,i);for(;e.length>o;)Li(n,i=e[o++])&&(~Wi(r,i)||Vi(r,i));return r},Yi=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"],Xi=Ui,Gi=Yi,Ki=Object.keys||function(t){return Xi(t,Gi)},$i={};$i.f=Object.getOwnPropertySymbols;var Zi=b,Qi=g,Ji=_,tn=o,en=Ki,nn=$i,on=x,rn=Rt,sn=R,an=Object.assign,hn=Object.defineProperty,ln=Qi([].concat),dn=!an||tn((function(){if(Zi&&1!==an({b:1},an(hn({},\"a\",{enumerable:!0,get:function(){hn(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},i=Symbol(),n=\"abcdefghijklmnopqrst\";return t[i]=7,n.split(\"\").forEach((function(t){e[t]=t})),7!=an({},t)[i]||en(an({},e)).join(\"\")!=n}))?function(t,e){for(var i=rn(t),n=arguments.length,o=1,r=nn.f,s=on.f;n>o;)for(var a,h=sn(arguments[o++]),l=r?ln(en(h),r(h)):en(h),d=l.length,c=0;d>c;)a=l[c++],Zi&&!Ji(s,h,a)||(i[a]=h[a]);return i}:an,cn=dn;_i({target:\"Object\",stat:!0,forced:Object.assign!==cn},{assign:cn});var un=X.Object.assign,fn=g([].slice),pn=g,vn=xt,gn=Y,yn=Wt,mn=fn,bn=r,wn=n.Function,kn=pn([].concat),_n=pn([].join),xn={},En=function(t,e,i){if(!yn(xn,e)){for(var n=[],o=0;o<e;o++)n[o]=\"a[\"+o+\"]\";xn[e]=wn(\"C,a\",\"return new C(\"+_n(n,\",\")+\")\")}return xn[e](t,i)},On=bn?wn.bind:function(t){var e=vn(this),i=e.prototype,n=mn(arguments,1),o=function(){var i=kn(n,mn(arguments));return this instanceof o?En(e,i.length,i):e.apply(t,i)};return gn(i)&&(o.prototype=i),o},Cn=On;_i({target:\"Function\",proto:!0,forced:Function.bind!==Cn},{bind:Cn});var Sn=X,Tn=function(t){return Sn[t+\"Prototype\"]},Mn=Tn(\"Function\").bind,Pn=J,Dn=Mn,In=Function.prototype,Bn=function(t){var e=t.bind;return t===In||Pn(In,t)&&e===In.bind?Dn:e},zn=Bn;function Nn(t,e,i,n){t.beginPath(),t.arc(e,i,n,0,2*Math.PI,!1),t.closePath()}function Fn(t,e,i,n,o,r){var s=Math.PI/180;n-2*r<0&&(r=n/2),o-2*r<0&&(r=o/2),t.beginPath(),t.moveTo(e+r,i),t.lineTo(e+n-r,i),t.arc(e+n-r,i+r,r,270*s,360*s,!1),t.lineTo(e+n,i+o-r),t.arc(e+n-r,i+o-r,r,0,90*s,!1),t.lineTo(e+r,i+o),t.arc(e+r,i+o-r,r,90*s,180*s,!1),t.lineTo(e,i+r),t.arc(e+r,i+r,r,180*s,270*s,!1),t.closePath()}function An(t,e,i,n,o){var r=.5522848,s=n/2*r,a=o/2*r,h=e+n,l=i+o,d=e+n/2,c=i+o/2;t.beginPath(),t.moveTo(e,c),t.bezierCurveTo(e,c-a,d-s,i,d,i),t.bezierCurveTo(d+s,i,h,c-a,h,c),t.bezierCurveTo(h,c+a,d+s,l,d,l),t.bezierCurveTo(d-s,l,e,c+a,e,c),t.closePath()}function jn(t,e,i,n,o){var r=o*(1/3),s=.5522848,a=n/2*s,h=r/2*s,l=e+n,d=i+r,c=e+n/2,u=i+r/2,f=i+(o-r/2),p=i+o;t.beginPath(),t.moveTo(l,u),t.bezierCurveTo(l,u+h,c+a,d,c,d),t.bezierCurveTo(c-a,d,e,u+h,e,u),t.bezierCurveTo(e,u-h,c-a,i,c,i),t.bezierCurveTo(c+a,i,l,u-h,l,u),t.lineTo(l,f),t.bezierCurveTo(l,f+h,c+a,p,c,p),t.bezierCurveTo(c-a,p,e,f+h,e,f),t.lineTo(e,u)}function Rn(t,e,i,n,o,r){t.beginPath(),t.moveTo(e,i);for(var s=r.length,a=n-e,h=o-i,l=h/a,d=Math.sqrt(a*a+h*h),c=0,u=!0,f=0,p=+r[0];d>=.1;)(p=+r[c++%s])>d&&(p=d),f=Math.sqrt(p*p/(1+l*l)),e+=f=a<0?-f:f,i+=l*f,!0===u?t.lineTo(e,i):t.moveTo(e,i),d-=p,u=!u}var Ln={circle:Nn,dashedLine:Rn,database:jn,diamond:function(t,e,i,n){t.beginPath(),t.lineTo(e,i+n),t.lineTo(e+n,i),t.lineTo(e,i-n),t.lineTo(e-n,i),t.closePath()},ellipse:An,ellipse_vis:An,hexagon:function(t,e,i,n){t.beginPath();var o=2*Math.PI/6;t.moveTo(e+n,i);for(var r=1;r<6;r++)t.lineTo(e+n*Math.cos(o*r),i+n*Math.sin(o*r));t.closePath()},roundRect:Fn,square:function(t,e,i,n){t.beginPath(),t.rect(e-n,i-n,2*n,2*n),t.closePath()},star:function(t,e,i,n){t.beginPath(),i+=.1*(n*=.82);for(var o=0;o<10;o++){var r=o%2==0?1.3*n:.5*n;t.lineTo(e+r*Math.sin(2*o*Math.PI/10),i-r*Math.cos(2*o*Math.PI/10))}t.closePath()},triangle:function(t,e,i,n){t.beginPath(),i+=.275*(n*=1.15);var o=2*n,r=o/2,s=Math.sqrt(3)/6*o,a=Math.sqrt(o*o-r*r);t.moveTo(e,i-(a-s)),t.lineTo(e+r,i+s),t.lineTo(e-r,i+s),t.lineTo(e,i-(a-s)),t.closePath()},triangleDown:function(t,e,i,n){t.beginPath(),i-=.275*(n*=1.15);var o=2*n,r=o/2,s=Math.sqrt(3)/6*o,a=Math.sqrt(o*o-r*r);t.moveTo(e,i+(a-s)),t.lineTo(e+r,i-s),t.lineTo(e-r,i-s),t.lineTo(e,i+(a-s)),t.closePath()}};var Hn={exports:{}};!function(t){function e(t){if(t)return function(t){for(var i in e.prototype)t[i]=e.prototype[i];return t}(t)}t.exports=e,e.prototype.on=e.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+t]=this._callbacks[\"$\"+t]||[]).push(e),this},e.prototype.once=function(t,e){function i(){this.off(t,i),e.apply(this,arguments)}return i.fn=e,this.on(t,i),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i,n=this._callbacks[\"$\"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+t],this;for(var o=0;o<n.length;o++)if((i=n[o])===e||i.fn===e){n.splice(o,1);break}return 0===n.length&&delete this._callbacks[\"$\"+t],this},e.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),i=this._callbacks[\"$\"+t],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(i){n=0;for(var o=(i=i.slice(0)).length;n<o;++n)i[n].apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[\"$\"+t]||[]},e.prototype.hasListeners=function(t){return!!this.listeners(t).length}}(Hn);var Wn=Hn.exports,qn={};qn[oe(\"toStringTag\")]=\"z\";var Vn=\"[object z]\"===String(qn),Un=n,Yn=Vn,Xn=y,Gn=B,Kn=oe(\"toStringTag\"),$n=Un.Object,Zn=\"Arguments\"==Gn(function(){return arguments}()),Qn=Yn?Gn:function(t){var e,i,n;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(i=function(t,e){try{return t[e]}catch(t){}}(e=$n(t),Kn))?i:Zn?Gn(e):\"Object\"==(n=Gn(e))&&Xn(e.callee)?\"Arguments\":n},Jn=Qn,to=n.String,eo=function(t){if(\"Symbol\"===Jn(t))throw TypeError(\"Cannot convert a Symbol value to a string\");return to(t)},io=g,no=Oi,oo=eo,ro=H,so=io(\"\".charAt),ao=io(\"\".charCodeAt),ho=io(\"\".slice),lo=function(t){return function(e,i){var n,o,r=oo(ro(e)),s=no(i),a=r.length;return s<0||s>=a?t?\"\":void 0:(n=ao(r,s))<55296||n>56319||s+1===a||(o=ao(r,s+1))<56320||o>57343?t?so(r,s):n:t?ho(r,s,s+2):o-56320+(n-55296<<10)+65536}},co={codeAt:lo(!1),charAt:lo(!0)},uo=y,fo=Nt,po=g(Function.toString);uo(fo.inspectSource)||(fo.inspectSource=function(t){return po(t)});var vo,go,yo,mo=fo.inspectSource,bo=y,wo=mo,ko=n.WeakMap,_o=bo(ko)&&/native code/.test(wo(ko)),xo=Pt.exports,Eo=Xt,Oo=xo(\"keys\"),Co=function(t){return Oo[t]||(Oo[t]=Eo(t))},So=_o,To=n,Mo=g,Po=Y,Do=di,Io=Wt,Bo=Nt,zo=Co,No=Ri,Fo=\"Object already initialized\",Ao=To.TypeError,jo=To.WeakMap;if(So||Bo.state){var Ro=Bo.state||(Bo.state=new jo),Lo=Mo(Ro.get),Ho=Mo(Ro.has),Wo=Mo(Ro.set);vo=function(t,e){if(Ho(Ro,t))throw new Ao(Fo);return e.facade=t,Wo(Ro,t,e),e},go=function(t){return Lo(Ro,t)||{}},yo=function(t){return Ho(Ro,t)}}else{var qo=zo(\"state\");No[qo]=!0,vo=function(t,e){if(Io(t,qo))throw new Ao(Fo);return e.facade=t,Do(t,qo,e),e},go=function(t){return Io(t,qo)?t[qo]:{}},yo=function(t){return Io(t,qo)}}var Vo={set:vo,get:go,has:yo,enforce:function(t){return yo(t)?go(t):vo(t,{})},getterFor:function(t){return function(e){var i;if(!Po(e)||(i=go(e)).type!==t)throw Ao(\"Incompatible receiver, \"+t+\" required\");return i}}},Uo=b,Yo=Wt,Xo=Function.prototype,Go=Uo&&Object.getOwnPropertyDescriptor,Ko=Yo(Xo,\"name\"),$o={EXISTS:Ko,PROPER:Ko&&\"something\"===function(){}.name,CONFIGURABLE:Ko&&(!Uo||Uo&&Go(Xo,\"name\").configurable)},Zo={},Qo=b,Jo=Ue,tr=Ve,er=$e,ir=V,nr=Ki;Zo.f=Qo&&!Jo?Object.defineProperties:function(t,e){er(t);for(var i,n=ir(e),o=nr(e),r=o.length,s=0;r>s;)tr.f(t,i=o[s++],n[i]);return t};var or,rr=Q(\"document\",\"documentElement\"),sr=$e,ar=Zo,hr=Yi,lr=Ri,dr=rr,cr=be,ur=Co(\"IE_PROTO\"),fr=function(){},pr=function(t){return\"<script>\"+t+\"</\"+\"script>\"},vr=function(t){t.write(pr(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},gr=function(){try{or=new ActiveXObject(\"htmlfile\")}catch(t){}var t,e;gr=\"undefined\"!=typeof document?document.domain&&or?vr(or):((e=cr(\"iframe\")).style.display=\"none\",dr.appendChild(e),e.src=String(\"javascript:\"),(t=e.contentWindow.document).open(),t.write(pr(\"document.F=Object\")),t.close(),t.F):vr(or);for(var i=hr.length;i--;)delete gr.prototype[hr[i]];return gr()};lr[ur]=!0;var yr,mr,br,wr=Object.create||function(t,e){var i;return null!==t?(fr.prototype=sr(t),i=new fr,fr.prototype=null,i[ur]=t):i=gr(),void 0===e?i:ar.f(i,e)},kr=!o((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),_r=n,xr=Wt,Er=y,Or=Rt,Cr=kr,Sr=Co(\"IE_PROTO\"),Tr=_r.Object,Mr=Tr.prototype,Pr=Cr?Tr.getPrototypeOf:function(t){var e=Or(t);if(xr(e,Sr))return e[Sr];var i=e.constructor;return Er(i)&&e instanceof i?i.prototype:e instanceof Tr?Mr:null},Dr=di,Ir=function(t,e,i,n){n&&n.enumerable?t[e]=i:Dr(t,e,i)},Br=o,zr=y,Nr=wr,Fr=Pr,Ar=Ir,jr=oe(\"iterator\"),Rr=!1;[].keys&&(\"next\"in(br=[].keys())?(mr=Fr(Fr(br)))!==Object.prototype&&(yr=mr):Rr=!0);var Lr=null==yr||Br((function(){var t={};return yr[jr].call(t)!==t}));zr((yr=Lr?{}:Nr(yr))[jr])||Ar(yr,jr,(function(){return this}));var Hr={IteratorPrototype:yr,BUGGY_SAFARI_ITERATORS:Rr},Wr=Qn,qr=Vn?{}.toString:function(){return\"[object \"+Wr(this)+\"]\"},Vr=Vn,Ur=Ve.f,Yr=di,Xr=Wt,Gr=qr,Kr=oe(\"toStringTag\"),$r=function(t,e,i,n){if(t){var o=i?t:t.prototype;Xr(o,Kr)||Ur(o,Kr,{configurable:!0,value:e}),n&&!Vr&&Yr(o,\"toString\",Gr)}},Zr={},Qr=Hr.IteratorPrototype,Jr=wr,ts=M,es=$r,is=Zr,ns=function(){return this},os=n,rs=y,ss=os.String,as=os.TypeError,hs=g,ls=$e,ds=function(t){if(\"object\"==typeof t||rs(t))return t;throw as(\"Can't set \"+ss(t)+\" as a prototype\")},cs=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,i={};try{(t=hs(Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set))(i,[]),e=i instanceof Array}catch(t){}return function(i,n){return ls(i),ds(n),e?t(i,n):i.__proto__=n,i}}():void 0),us=_i,fs=_,ps=function(t,e,i,n){var o=e+\" Iterator\";return t.prototype=Jr(Qr,{next:ts(+!n,i)}),es(t,o,!1,!0),is[o]=ns,t},vs=Pr,gs=$r,ys=Ir,ms=Zr,bs=$o.PROPER,ws=Hr.BUGGY_SAFARI_ITERATORS,ks=oe(\"iterator\"),_s=\"keys\",xs=\"values\",Es=\"entries\",Os=function(){return this},Cs=function(t,e,i,n,o,r,s){ps(i,e,n);var a,h,l,d=function(t){if(t===o&&v)return v;if(!ws&&t in f)return f[t];switch(t){case _s:case xs:case Es:return function(){return new i(this,t)}}return function(){return new i(this)}},c=e+\" Iterator\",u=!1,f=t.prototype,p=f[ks]||f[\"@@iterator\"]||o&&f[o],v=!ws&&p||d(o),g=\"Array\"==e&&f.entries||p;if(g&&(a=vs(g.call(new t)))!==Object.prototype&&a.next&&(gs(a,c,!0,!0),ms[c]=Os),bs&&o==xs&&p&&p.name!==xs&&(u=!0,v=function(){return fs(p,this)}),o)if(h={values:d(xs),keys:r?v:d(_s),entries:d(Es)},s)for(l in h)(ws||u||!(l in f))&&ys(f,l,h[l]);else us({target:e,proto:!0,forced:ws||u},h);return s&&f[ks]!==v&&ys(f,ks,v,{name:o}),ms[e]=v,h},Ss=co.charAt,Ts=eo,Ms=Vo,Ps=Cs,Ds=\"String Iterator\",Is=Ms.set,Bs=Ms.getterFor(Ds);Ps(String,\"String\",(function(t){Is(this,{type:Ds,string:Ts(t),index:0})}),(function(){var t,e=Bs(this),i=e.string,n=e.index;return n>=i.length?{value:void 0,done:!0}:(t=Ss(i,n),e.index+=t.length,{value:t,done:!1})}));var zs=_,Ns=$e,Fs=Ot,As=function(t,e,i){var n,o;Ns(t);try{if(!(n=Fs(t,\"return\"))){if(\"throw\"===e)throw i;return i}n=zs(n,t)}catch(t){o=!0,n=t}if(\"throw\"===e)throw i;if(o)throw n;return Ns(n),i},js=$e,Rs=As,Ls=Zr,Hs=oe(\"iterator\"),Ws=Array.prototype,qs=function(t){return void 0!==t&&(Ls.Array===t||Ws[Hs]===t)},Vs=g,Us=o,Ys=y,Xs=Qn,Gs=mo,Ks=function(){},$s=[],Zs=Q(\"Reflect\",\"construct\"),Qs=/^\\s*(?:class|function)\\b/,Js=Vs(Qs.exec),ta=!Qs.exec(Ks),ea=function(t){if(!Ys(t))return!1;try{return Zs(Ks,$s,t),!0}catch(t){return!1}},ia=function(t){if(!Ys(t))return!1;switch(Xs(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return ta||!!Js(Qs,Gs(t))}catch(t){return!0}};ia.sham=!0;var na=!Zs||Us((function(){var t;return ea(ea.call)||!ea(Object)||!ea((function(){t=!0}))||t}))?ia:ea,oa=ve,ra=Ve,sa=M,aa=function(t,e,i){var n=oa(e);n in t?ra.f(t,n,sa(0,i)):t[n]=i},ha=Qn,la=Ot,da=Zr,ca=oe(\"iterator\"),ua=function(t){if(null!=t)return la(t,ca)||la(t,\"@@iterator\")||da[ha(t)]},fa=_,pa=xt,va=$e,ga=bt,ya=ua,ma=n.TypeError,ba=function(t,e){var i=arguments.length<2?ya(t):e;if(pa(i))return va(fa(i,t));throw ma(ga(t)+\" is not iterable\")},wa=qe,ka=_,_a=Rt,xa=function(t,e,i,n){try{return n?e(js(i)[0],i[1]):e(i)}catch(e){Rs(t,\"throw\",e)}},Ea=qs,Oa=na,Ca=Bi,Sa=aa,Ta=ba,Ma=ua,Pa=n.Array,Da=oe(\"iterator\"),Ia=!1;try{var Ba=0,za={next:function(){return{done:!!Ba++}},return:function(){Ia=!0}};za[Da]=function(){return this},Array.from(za,(function(){throw 2}))}catch(t){}var Na=function(t){var e=_a(t),i=Oa(this),n=arguments.length,o=n>1?arguments[1]:void 0,r=void 0!==o;r&&(o=wa(o,n>2?arguments[2]:void 0));var s,a,h,l,d,c,u=Ma(e),f=0;if(!u||this==Pa&&Ea(u))for(s=Ca(e),a=i?new this(s):Pa(s);s>f;f++)c=r?o(e[f],f):e[f],Sa(a,f,c);else for(d=(l=Ta(e,u)).next,a=i?new this:[];!(h=ka(d,l)).done;f++)c=r?xa(l,o,[h.value,f],!0):h.value,Sa(a,f,c);return a.length=f,a},Fa=function(t,e){if(!e&&!Ia)return!1;var i=!1;try{var n={};n[Da]=function(){return{next:function(){return{done:i=!0}}}},t(n)}catch(t){}return i};_i({target:\"Array\",stat:!0,forced:!Fa((function(t){Array.from(t)}))},{from:Na});var Aa=X.Array.from,ja=Aa,Ra=V,La=Zr,Ha=Vo;Ve.f;var Wa=Cs,qa=\"Array Iterator\",Va=Ha.set,Ua=Ha.getterFor(qa);Wa(Array,\"Array\",(function(t,e){Va(this,{type:qa,target:Ra(t),index:0,kind:e})}),(function(){var t=Ua(this),e=t.target,i=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):\"keys\"==i?{value:n,done:!1}:\"values\"==i?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}}),\"values\"),La.Arguments=La.Array;var Ya=ua,Xa={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Ga=n,Ka=Qn,$a=di,Za=Zr,Qa=oe(\"toStringTag\");for(var Ja in Xa){var th=Ga[Ja],eh=th&&th.prototype;eh&&Ka(eh)!==Qa&&$a(eh,Qa,Ja),Za[Ja]=Za.Array}var ih=Ya,nh=B,oh=Array.isArray||function(t){return\"Array\"==nh(t)},rh={},sh=Ui,ah=Yi.concat(\"length\",\"prototype\");rh.f=Object.getOwnPropertyNames||function(t){return sh(t,ah)};var hh={},lh=Mi,dh=Bi,ch=aa,uh=n.Array,fh=Math.max,ph=function(t,e,i){for(var n=dh(t),o=lh(e,n),r=lh(void 0===i?n:i,n),s=uh(fh(r-o,0)),a=0;o<r;o++,a++)ch(s,a,t[o]);return s.length=a,s},vh=B,gh=V,yh=rh.f,mh=ph,bh=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];hh.f=function(t){return bh&&\"Window\"==vh(t)?function(t){try{return yh(t)}catch(t){return mh(bh)}}(t):yh(gh(t))};var wh={},kh=oe;wh.f=kh;var _h=X,xh=Wt,Eh=wh,Oh=Ve.f,Ch=function(t){var e=_h.Symbol||(_h.Symbol={});xh(e,t)||Oh(e,t,{value:Eh.f(t)})},Sh=n,Th=oh,Mh=na,Ph=Y,Dh=oe(\"species\"),Ih=Sh.Array,Bh=function(t){var e;return Th(t)&&(e=t.constructor,(Mh(e)&&(e===Ih||Th(e.prototype))||Ph(e)&&null===(e=e[Dh]))&&(e=void 0)),void 0===e?Ih:e},zh=function(t,e){return new(Bh(t))(0===e?0:e)},Nh=qe,Fh=R,Ah=Rt,jh=Bi,Rh=zh,Lh=g([].push),Hh=function(t){var e=1==t,i=2==t,n=3==t,o=4==t,r=6==t,s=7==t,a=5==t||r;return function(h,l,d,c){for(var u,f,p=Ah(h),v=Fh(p),g=Nh(l,d),y=jh(v),m=0,b=c||Rh,w=e?b(h,y):i||s?b(h,0):void 0;y>m;m++)if((a||m in v)&&(f=g(u=v[m],m,p),t))if(e)w[m]=f;else if(f)switch(t){case 3:return!0;case 5:return u;case 6:return m;case 2:Lh(w,u)}else switch(t){case 4:return!1;case 7:Lh(w,u)}return r?-1:n||o?o:w}},Wh={forEach:Hh(0),map:Hh(1),filter:Hh(2),some:Hh(3),every:Hh(4),find:Hh(5),findIndex:Hh(6),filterReject:Hh(7)},qh=_i,Vh=n,Uh=Q,Yh=d,Xh=_,Gh=g,Kh=b,$h=dt,Zh=o,Qh=Wt,Jh=oh,tl=y,el=Y,il=J,nl=yt,ol=$e,rl=Rt,sl=V,al=ve,hl=eo,ll=M,dl=wr,cl=Ki,ul=rh,fl=hh,pl=$i,vl=m,gl=Ve,yl=Zo,ml=x,bl=fn,wl=Ir,kl=Pt.exports,_l=Ri,xl=Xt,El=oe,Ol=wh,Cl=Ch,Sl=$r,Tl=Vo,Ml=Wh.forEach,Pl=Co(\"hidden\"),Dl=\"Symbol\",Il=El(\"toPrimitive\"),Bl=Tl.set,zl=Tl.getterFor(Dl),Nl=Object.prototype,Fl=Vh.Symbol,Al=Fl&&Fl.prototype,jl=Vh.TypeError,Rl=Vh.QObject,Ll=Uh(\"JSON\",\"stringify\"),Hl=vl.f,Wl=gl.f,ql=fl.f,Vl=ml.f,Ul=Gh([].push),Yl=kl(\"symbols\"),Xl=kl(\"op-symbols\"),Gl=kl(\"string-to-symbol-registry\"),Kl=kl(\"symbol-to-string-registry\"),$l=kl(\"wks\"),Zl=!Rl||!Rl.prototype||!Rl.prototype.findChild,Ql=Kh&&Zh((function(){return 7!=dl(Wl({},\"a\",{get:function(){return Wl(this,\"a\",{value:7}).a}})).a}))?function(t,e,i){var n=Hl(Nl,e);n&&delete Nl[e],Wl(t,e,i),n&&t!==Nl&&Wl(Nl,e,n)}:Wl,Jl=function(t,e){var i=Yl[t]=dl(Al);return Bl(i,{type:Dl,tag:t,description:e}),Kh||(i.description=e),i},td=function(t,e,i){t===Nl&&td(Xl,e,i),ol(t);var n=al(e);return ol(i),Qh(Yl,n)?(i.enumerable?(Qh(t,Pl)&&t[Pl][n]&&(t[Pl][n]=!1),i=dl(i,{enumerable:ll(0,!1)})):(Qh(t,Pl)||Wl(t,Pl,ll(1,{})),t[Pl][n]=!0),Ql(t,n,i)):Wl(t,n,i)},ed=function(t,e){ol(t);var i=sl(e),n=cl(i).concat(rd(i));return Ml(n,(function(e){Kh&&!Xh(id,i,e)||td(t,e,i[e])})),t},id=function(t){var e=al(t),i=Xh(Vl,this,e);return!(this===Nl&&Qh(Yl,e)&&!Qh(Xl,e))&&(!(i||!Qh(this,e)||!Qh(Yl,e)||Qh(this,Pl)&&this[Pl][e])||i)},nd=function(t,e){var i=sl(t),n=al(e);if(i!==Nl||!Qh(Yl,n)||Qh(Xl,n)){var o=Hl(i,n);return!o||!Qh(Yl,n)||Qh(i,Pl)&&i[Pl][n]||(o.enumerable=!0),o}},od=function(t){var e=ql(sl(t)),i=[];return Ml(e,(function(t){Qh(Yl,t)||Qh(_l,t)||Ul(i,t)})),i},rd=function(t){var e=t===Nl,i=ql(e?Xl:sl(t)),n=[];return Ml(i,(function(t){!Qh(Yl,t)||e&&!Qh(Nl,t)||Ul(n,Yl[t])})),n};if($h||(Fl=function(){if(il(Al,this))throw jl(\"Symbol is not a constructor\");var t=arguments.length&&void 0!==arguments[0]?hl(arguments[0]):void 0,e=xl(t),i=function(t){this===Nl&&Xh(i,Xl,t),Qh(this,Pl)&&Qh(this[Pl],e)&&(this[Pl][e]=!1),Ql(this,e,ll(1,t))};return Kh&&Zl&&Ql(Nl,e,{configurable:!0,set:i}),Jl(e,t)},wl(Al=Fl.prototype,\"toString\",(function(){return zl(this).tag})),wl(Fl,\"withoutSetter\",(function(t){return Jl(xl(t),t)})),ml.f=id,gl.f=td,yl.f=ed,vl.f=nd,ul.f=fl.f=od,pl.f=rd,Ol.f=function(t){return Jl(El(t),t)},Kh&&Wl(Al,\"description\",{configurable:!0,get:function(){return zl(this).description}})),qh({global:!0,wrap:!0,forced:!$h,sham:!$h},{Symbol:Fl}),Ml(cl($l),(function(t){Cl(t)})),qh({target:Dl,stat:!0,forced:!$h},{for:function(t){var e=hl(t);if(Qh(Gl,e))return Gl[e];var i=Fl(e);return Gl[e]=i,Kl[i]=e,i},keyFor:function(t){if(!nl(t))throw jl(t+\" is not a symbol\");if(Qh(Kl,t))return Kl[t]},useSetter:function(){Zl=!0},useSimple:function(){Zl=!1}}),qh({target:\"Object\",stat:!0,forced:!$h,sham:!Kh},{create:function(t,e){return void 0===e?dl(t):ed(dl(t),e)},defineProperty:td,defineProperties:ed,getOwnPropertyDescriptor:nd}),qh({target:\"Object\",stat:!0,forced:!$h},{getOwnPropertyNames:od,getOwnPropertySymbols:rd}),qh({target:\"Object\",stat:!0,forced:Zh((function(){pl.f(1)}))},{getOwnPropertySymbols:function(t){return pl.f(rl(t))}}),Ll){var sd=!$h||Zh((function(){var t=Fl();return\"[null]\"!=Ll([t])||\"{}\"!=Ll({a:t})||\"{}\"!=Ll(Object(t))}));qh({target:\"JSON\",stat:!0,forced:sd},{stringify:function(t,e,i){var n=bl(arguments),o=e;if((el(e)||void 0!==t)&&!nl(t))return Jh(e)||(e=function(t,e){if(tl(o)&&(e=Xh(o,this,t,e)),!nl(e))return e}),n[1]=e,Yh(Ll,null,n)}})}if(!Al[Il]){var ad=Al.valueOf;wl(Al,Il,(function(t){return Xh(ad,this)}))}Sl(Fl,Dl),_l[Pl]=!0;var hd=X.Object.getOwnPropertySymbols,ld={exports:{}},dd=_i,cd=o,ud=V,fd=m.f,pd=b,vd=cd((function(){fd(1)}));dd({target:\"Object\",stat:!0,forced:!pd||vd,sham:!pd},{getOwnPropertyDescriptor:function(t,e){return fd(ud(t),e)}});var gd=X.Object,yd=ld.exports=function(t,e){return gd.getOwnPropertyDescriptor(t,e)};gd.getOwnPropertyDescriptor.sham&&(yd.sham=!0);var md=ld.exports,bd=md,wd=Q,kd=rh,_d=$i,xd=$e,Ed=g([].concat),Od=wd(\"Reflect\",\"ownKeys\")||function(t){var e=kd.f(xd(t)),i=_d.f;return i?Ed(e,i(t)):e},Cd=Od,Sd=V,Td=m,Md=aa;_i({target:\"Object\",stat:!0,sham:!b},{getOwnPropertyDescriptors:function(t){for(var e,i,n=Sd(t),o=Td.f,r=Cd(n),s={},a=0;r.length>a;)void 0!==(i=o(n,e=r[a++]))&&Md(s,e,i);return s}});var Pd=X.Object.getOwnPropertyDescriptors,Dd={exports:{}},Id=_i,Bd=b,zd=Zo.f;Id({target:\"Object\",stat:!0,forced:Object.defineProperties!==zd,sham:!Bd},{defineProperties:zd});var Nd=X.Object,Fd=Dd.exports=function(t,e){return Nd.defineProperties(t,e)};Nd.defineProperties.sham&&(Fd.sham=!0);var Ad=Dd.exports,jd={exports:{}},Rd=_i,Ld=b,Hd=Ve.f;Rd({target:\"Object\",stat:!0,forced:Object.defineProperty!==Hd,sham:!Ld},{defineProperty:Hd});var Wd=X.Object,qd=jd.exports=function(t,e,i){return Wd.defineProperty(t,e,i)};Wd.defineProperty.sham&&(qd.sham=!0);var Vd=jd.exports,Ud=Vd;function Yd(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var Xd=Vd;function Gd(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Xd(t,n.key,n)}}function Kd(t,e,i){return e&&Gd(t.prototype,e),i&&Gd(t,i),Xd(t,\"prototype\",{writable:!1}),t}function $d(t,e,i){return e in t?Xd(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}_i({target:\"Array\",stat:!0},{isArray:oh});var Zd=X.Array.isArray,Qd=Zd;var Jd=o,tc=at,ec=oe(\"species\"),ic=function(t){return tc>=51||!Jd((function(){var e=[];return(e.constructor={})[ec]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},nc=_i,oc=n,rc=o,sc=oh,ac=Y,hc=Rt,lc=Bi,dc=aa,cc=zh,uc=ic,fc=at,pc=oe(\"isConcatSpreadable\"),vc=9007199254740991,gc=\"Maximum allowed index exceeded\",yc=oc.TypeError,mc=fc>=51||!rc((function(){var t=[];return t[pc]=!1,t.concat()[0]!==t})),bc=uc(\"concat\"),wc=function(t){if(!ac(t))return!1;var e=t[pc];return void 0!==e?!!e:sc(t)};nc({target:\"Array\",proto:!0,forced:!mc||!bc},{concat:function(t){var e,i,n,o,r,s=hc(this),a=cc(s,0),h=0;for(e=-1,n=arguments.length;e<n;e++)if(wc(r=-1===e?s:arguments[e])){if(h+(o=lc(r))>vc)throw yc(gc);for(i=0;i<o;i++,h++)i in r&&dc(a,h,r[i])}else{if(h>=vc)throw yc(gc);dc(a,h++,r)}return a.length=h,a}}),Ch(\"asyncIterator\"),Ch(\"hasInstance\"),Ch(\"isConcatSpreadable\"),Ch(\"iterator\"),Ch(\"match\"),Ch(\"matchAll\"),Ch(\"replace\"),Ch(\"search\"),Ch(\"species\"),Ch(\"split\"),Ch(\"toPrimitive\"),Ch(\"toStringTag\"),Ch(\"unscopables\"),$r(n.JSON,\"JSON\",!0);var kc=X.Symbol,_c=kc;Ch(\"asyncDispose\"),Ch(\"dispose\"),Ch(\"matcher\"),Ch(\"metadata\"),Ch(\"observable\"),Ch(\"patternMatch\"),Ch(\"replaceAll\");var xc=_c;var Ec=_i,Oc=n,Cc=oh,Sc=na,Tc=Y,Mc=Mi,Pc=Bi,Dc=V,Ic=aa,Bc=oe,zc=fn,Nc=ic(\"slice\"),Fc=Bc(\"species\"),Ac=Oc.Array,jc=Math.max;Ec({target:\"Array\",proto:!0,forced:!Nc},{slice:function(t,e){var i,n,o,r=Dc(this),s=Pc(r),a=Mc(t,s),h=Mc(void 0===e?s:e,s);if(Cc(r)&&(i=r.constructor,(Sc(i)&&(i===Ac||Cc(i.prototype))||Tc(i)&&null===(i=i[Fc]))&&(i=void 0),i===Ac||void 0===i))return zc(r,a,h);for(n=new(void 0===i?Ac:i)(jc(h-a,0)),o=0;a<h;a++,o++)a in r&&Ic(n,o,r[a]);return n.length=o,n}});var Rc=Tn(\"Array\").slice,Lc=J,Hc=Rc,Wc=Array.prototype,qc=function(t){var e=t.slice;return t===Wc||Lc(Wc,t)&&e===Wc.slice?Hc:e},Vc=qc,Uc=Vc,Yc=Aa;function Xc(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function Gc(t,e){var i;if(t){if(\"string\"==typeof t)return Xc(t,e);var n=Uc(i=Object.prototype.toString.call(t)).call(i,8,-1);return\"Object\"===n&&t.constructor&&(n=t.constructor.name),\"Map\"===n||\"Set\"===n?Yc(t):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Xc(t,e):void 0}}function Kc(t,e){return function(t){if(Qd(t))return t}(t)||function(t,e){var i=null==t?null:void 0!==xc&&ih(t)||t[\"@@iterator\"];if(null!=i){var n,o,r=[],s=!0,a=!1;try{for(i=i.call(t);!(s=(n=i.next()).done)&&(r.push(n.value),!e||r.length!==e);s=!0);}catch(t){a=!0,o=t}finally{try{s||null==i.return||i.return()}finally{if(a)throw o}}return r}}(t,e)||Gc(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var $c=wh.f(\"iterator\"),Zc=$c;function Qc(t){return Qc=\"function\"==typeof xc&&\"symbol\"==typeof Zc?function(t){return typeof t}:function(t){return t&&\"function\"==typeof xc&&t.constructor===xc&&t!==xc.prototype?\"symbol\":typeof t},Qc(t)}function Jc(t){return function(t){if(Qd(t))return Xc(t)}(t)||function(t){if(void 0!==xc&&null!=ih(t)||null!=t[\"@@iterator\"])return Yc(t)}(t)||Gc(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var tu=kc,eu=Tn(\"Array\").concat,iu=J,nu=eu,ou=Array.prototype,ru=function(t){var e=t.concat;return t===ou||iu(ou,t)&&e===ou.concat?nu:e},su=ru,au=Vc;_i({target:\"Reflect\",stat:!0},{ownKeys:Od});var hu=X.Reflect.ownKeys,lu=Zd,du=Wh.map;_i({target:\"Array\",proto:!0,forced:!ic(\"map\")},{map:function(t){return du(this,t,arguments.length>1?arguments[1]:void 0)}});var cu=Tn(\"Array\").map,uu=J,fu=cu,pu=Array.prototype,vu=function(t){var e=t.map;return t===pu||uu(pu,t)&&e===pu.map?fu:e},gu=vu,yu=Rt,mu=Ki;_i({target:\"Object\",stat:!0,forced:o((function(){mu(1)}))},{keys:function(t){return mu(yu(t))}});var bu=X.Object.keys,wu=_i,ku=g,_u=n.Date,xu=ku(_u.prototype.getTime);wu({target:\"Date\",stat:!0},{now:function(){return xu(new _u)}});var Eu=X.Date.now,Ou=o,Cu=function(t,e){var i=[][t];return!!i&&Ou((function(){i.call(null,e||function(){return 1},1)}))},Su=Wh.forEach,Tu=Cu(\"forEach\")?[].forEach:function(t){return Su(this,t,arguments.length>1?arguments[1]:void 0)};_i({target:\"Array\",proto:!0,forced:[].forEach!=Tu},{forEach:Tu});var Mu=Tn(\"Array\").forEach,Pu=Qn,Du=Wt,Iu=J,Bu=Mu,zu=Array.prototype,Nu={DOMTokenList:!0,NodeList:!0},Fu=function(t){var e=t.forEach;return t===zu||Iu(zu,t)&&e===zu.forEach||Du(Nu,Pu(t))?Bu:e},Au=_i,ju=oh,Ru=g([].reverse),Lu=[1,2];Au({target:\"Array\",proto:!0,forced:String(Lu)===String(Lu.reverse())},{reverse:function(){return ju(this)&&(this.length=this.length),Ru(this)}});var Hu=Tn(\"Array\").reverse,Wu=J,qu=Hu,Vu=Array.prototype,Uu=function(t){var e=t.reverse;return t===Vu||Wu(Vu,t)&&e===Vu.reverse?qu:e},Yu=Uu,Xu=_i,Gu=n,Ku=Mi,$u=Oi,Zu=Bi,Qu=Rt,Ju=zh,tf=aa,ef=ic(\"splice\"),nf=Gu.TypeError,of=Math.max,rf=Math.min,sf=9007199254740991,af=\"Maximum allowed length exceeded\";Xu({target:\"Array\",proto:!0,forced:!ef},{splice:function(t,e){var i,n,o,r,s,a,h=Qu(this),l=Zu(h),d=Ku(t,l),c=arguments.length;if(0===c?i=n=0:1===c?(i=0,n=l-d):(i=c-2,n=rf(of($u(e),0),l-d)),l+i-n>sf)throw nf(af);for(o=Ju(h,n),r=0;r<n;r++)(s=d+r)in h&&tf(o,r,h[s]);if(o.length=n,i<n){for(r=d;r<l-n;r++)a=r+i,(s=r+n)in h?h[a]=h[s]:delete h[a];for(r=l;r>l-n+i;r--)delete h[r-1]}else if(i>n)for(r=l-n;r>d;r--)a=r+i-1,(s=r+n-1)in h?h[a]=h[s]:delete h[a];for(r=0;r<i;r++)h[r+d]=arguments[r+2];return h.length=l-n+i,o}});var hf=Tn(\"Array\").splice,lf=J,df=hf,cf=Array.prototype,uf=function(t){var e=t.splice;return t===cf||lf(cf,t)&&e===cf.splice?df:e},ff=uf,pf=ji.includes;_i({target:\"Array\",proto:!0},{includes:function(t){return pf(this,t,arguments.length>1?arguments[1]:void 0)}});var vf=Tn(\"Array\").includes,gf=Y,yf=B,mf=oe(\"match\"),bf=function(t){var e;return gf(t)&&(void 0!==(e=t[mf])?!!e:\"RegExp\"==yf(t))},wf=n.TypeError,kf=oe(\"match\"),_f=_i,xf=function(t){if(bf(t))throw wf(\"The method doesn't accept regular expressions\");return t},Ef=H,Of=eo,Cf=function(t){var e=/./;try{\"/./\"[t](e)}catch(i){try{return e[kf]=!1,\"/./\"[t](e)}catch(t){}}return!1},Sf=g(\"\".indexOf);_f({target:\"String\",proto:!0,forced:!Cf(\"includes\")},{includes:function(t){return!!~Sf(Of(Ef(this)),Of(xf(t)),arguments.length>1?arguments[1]:void 0)}});var Tf=Tn(\"String\").includes,Mf=J,Pf=vf,Df=Tf,If=Array.prototype,Bf=String.prototype,zf=function(t){var e=t.includes;return t===If||Mf(If,t)&&e===If.includes?Pf:\"string\"==typeof t||t===Bf||Mf(Bf,t)&&e===Bf.includes?Df:e},Nf=zf,Ff=Rt,Af=Pr,jf=kr;_i({target:\"Object\",stat:!0,forced:o((function(){Af(1)})),sham:!jf},{getPrototypeOf:function(t){return Af(Ff(t))}});var Rf=X.Object.getPrototypeOf,Lf=Rf,Hf=Wh.filter;_i({target:\"Array\",proto:!0,forced:!ic(\"filter\")},{filter:function(t){return Hf(this,t,arguments.length>1?arguments[1]:void 0)}});var Wf=Tn(\"Array\").filter,qf=J,Vf=Wf,Uf=Array.prototype,Yf=function(t){var e=t.filter;return t===Uf||qf(Uf,t)&&e===Uf.filter?Vf:e},Xf=Yf,Gf=b,Kf=g,$f=Ki,Zf=V,Qf=Kf(x.f),Jf=Kf([].push),tp=function(t){return function(e){for(var i,n=Zf(e),o=$f(n),r=o.length,s=0,a=[];r>s;)i=o[s++],Gf&&!Qf(n,i)||Jf(a,t?[i,n[i]]:n[i]);return a}},ep={entries:tp(!0),values:tp(!1)}.values;_i({target:\"Object\",stat:!0},{values:function(t){return ep(t)}});var ip=X.Object.values,np=\"\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff\",op=H,rp=eo,sp=g(\"\".replace),ap=\"[\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff]\",hp=RegExp(\"^\"+ap+ap+\"*\"),lp=RegExp(ap+ap+\"*$\"),dp=function(t){return function(e){var i=rp(op(e));return 1&t&&(i=sp(i,hp,\"\")),2&t&&(i=sp(i,lp,\"\")),i}},cp={start:dp(1),end:dp(2),trim:dp(3)},up=n,fp=o,pp=g,vp=eo,gp=cp.trim,yp=np,mp=up.parseInt,bp=up.Symbol,wp=bp&&bp.iterator,kp=/^[+-]?0x/i,_p=pp(kp.exec),xp=8!==mp(yp+\"08\")||22!==mp(yp+\"0x16\")||wp&&!fp((function(){mp(Object(wp))}))?function(t,e){var i=gp(vp(t));return mp(i,e>>>0||(_p(kp,i)?16:10))}:mp;_i({global:!0,forced:parseInt!=xp},{parseInt:xp});var Ep=X.parseInt,Op=_i,Cp=ji.indexOf,Sp=Cu,Tp=g([].indexOf),Mp=!!Tp&&1/Tp([1],1,-0)<0,Pp=Sp(\"indexOf\");Op({target:\"Array\",proto:!0,forced:Mp||!Pp},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return Mp?Tp(this,t,e)||0:Cp(this,t,e)}});var Dp=Tn(\"Array\").indexOf,Ip=J,Bp=Dp,zp=Array.prototype,Np=function(t){var e=t.indexOf;return t===zp||Ip(zp,t)&&e===zp.indexOf?Bp:e},Fp=Np,Ap=$o.PROPER,jp=o,Rp=np,Lp=cp.trim;_i({target:\"String\",proto:!0,forced:function(t){return jp((function(){return!!Rp[t]()||\"​…᠎\"!==\"​…᠎\"[t]()||Ap&&Rp[t].name!==t}))}(\"trim\")},{trim:function(){return Lp(this)}});var Hp=Tn(\"String\").trim,Wp=J,qp=Hp,Vp=String.prototype,Up=function(t){var e=t.trim;return\"string\"==typeof t||t===Vp||Wp(Vp,t)&&e===Vp.trim?qp:e},Yp=Up;_i({target:\"Object\",stat:!0,sham:!b},{create:wr});var Xp=X.Object,Gp=function(t,e){return Xp.create(t,e)},Kp=Gp,$p=_i,Zp=Q,Qp=d,Jp=g,tv=o,ev=n.Array,iv=Zp(\"JSON\",\"stringify\"),nv=Jp(/./.exec),ov=Jp(\"\".charAt),rv=Jp(\"\".charCodeAt),sv=Jp(\"\".replace),av=Jp(1..toString),hv=/[\\uD800-\\uDFFF]/g,lv=/^[\\uD800-\\uDBFF]$/,dv=/^[\\uDC00-\\uDFFF]$/,cv=function(t,e,i){var n=ov(i,e-1),o=ov(i,e+1);return nv(lv,t)&&!nv(dv,o)||nv(dv,t)&&!nv(lv,n)?\"\\\\u\"+av(rv(t,0),16):t},uv=tv((function(){return'\"\\\\udf06\\\\ud834\"'!==iv(\"\\udf06\\ud834\")||'\"\\\\udead\"'!==iv(\"\\udead\")}));iv&&$p({target:\"JSON\",stat:!0,forced:uv},{stringify:function(t,e,i){for(var n=0,o=arguments.length,r=ev(o);n<o;n++)r[n]=arguments[n];var s=Qp(iv,null,r);return\"string\"==typeof s?sv(s,hv,cv):s}});var fv=X,pv=d;fv.JSON||(fv.JSON={stringify:JSON.stringify});var vv=function(t,e,i){return pv(fv.JSON.stringify,null,arguments)},gv=vv,yv=n.TypeError,mv=_i,bv=n,wv=d,kv=y,_v=fn,xv=function(t,e){if(t<e)throw yv(\"Not enough arguments\");return t},Ev=/MSIE .\\./.test(tt),Ov=bv.Function,Cv=function(t){return function(e,i){var n=xv(arguments.length,1)>2,o=kv(e)?e:Ov(e),r=n?_v(arguments,2):void 0;return t(n?function(){wv(o,this,r)}:o,i)}};mv({global:!0,bind:!0,forced:Ev},{setTimeout:Cv(bv.setTimeout),setInterval:Cv(bv.setInterval)});var Sv=X.setTimeout,Tv=Rt,Mv=Mi,Pv=Bi,Dv=function(t){for(var e=Tv(this),i=Pv(e),n=arguments.length,o=Mv(n>1?arguments[1]:void 0,i),r=n>2?arguments[2]:void 0,s=void 0===r?i:Mv(r,i);s>o;)e[o++]=t;return e};_i({target:\"Array\",proto:!0},{fill:Dv});var Iv,Bv=Tn(\"Array\").fill,zv=J,Nv=Bv,Fv=Array.prototype,Av=function(t){var e=t.fill;return t===Fv||zv(Fv,t)&&e===Fv.fill?Nv:e},jv=Av;function Rv(){return Rv=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t},Rv.apply(this,arguments)}function Lv(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function Hv(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}Iv=\"function\"!=typeof Object.assign?function(t){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(null!=n)for(var o in n)n.hasOwnProperty(o)&&(e[o]=n[o])}return e}:Object.assign;var Wv,qv=Iv,Vv=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],Uv=\"undefined\"==typeof document?{style:{}}:document.createElement(\"div\"),Yv=Math.round,Xv=Math.abs,Gv=Date.now;function Kv(t,e){for(var i,n,o=e[0].toUpperCase()+e.slice(1),r=0;r<Vv.length;){if((n=(i=Vv[r])?i+o:e)in t)return n;r++}}Wv=\"undefined\"==typeof window?{}:window;var $v=Kv(Uv.style,\"touchAction\"),Zv=void 0!==$v;var Qv=\"compute\",Jv=\"auto\",tg=\"manipulation\",eg=\"none\",ig=\"pan-x\",ng=\"pan-y\",og=function(){if(!Zv)return!1;var t={},e=Wv.CSS&&Wv.CSS.supports;return[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach((function(i){return t[i]=!e||Wv.CSS.supports(\"touch-action\",i)})),t}(),rg=\"ontouchstart\"in Wv,sg=void 0!==Kv(Wv,\"PointerEvent\"),ag=rg&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),hg=\"touch\",lg=\"mouse\",dg=16,cg=24,ug=[\"x\",\"y\"],fg=[\"clientX\",\"clientY\"];function pg(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(void 0!==t.length)for(n=0;n<t.length;)e.call(i,t[n],n,t),n++;else for(n in t)t.hasOwnProperty(n)&&e.call(i,t[n],n,t)}function vg(t,e){return\"function\"==typeof t?t.apply(e&&e[0]||void 0,e):t}function gg(t,e){return t.indexOf(e)>-1}var yg=function(){function t(t,e){this.manager=t,this.set(e)}var e=t.prototype;return e.set=function(t){t===Qv&&(t=this.compute()),Zv&&this.manager.element.style&&og[t]&&(this.manager.element.style[$v]=t),this.actions=t.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var t=[];return pg(this.manager.recognizers,(function(e){vg(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))})),function(t){if(gg(t,eg))return eg;var e=gg(t,ig),i=gg(t,ng);return e&&i?eg:e||i?e?ig:ng:gg(t,tg)?tg:Jv}(t.join(\" \"))},e.preventDefaults=function(t){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)e.preventDefault();else{var n=this.actions,o=gg(n,eg)&&!og.none,r=gg(n,ng)&&!og[\"pan-y\"],s=gg(n,ig)&&!og[\"pan-x\"];if(o){var a=1===t.pointers.length,h=t.distance<2,l=t.deltaTime<250;if(a&&h&&l)return}if(!s||!r)return o||r&&6&i||s&&i&cg?this.preventSrc(e):void 0}},e.preventSrc=function(t){this.manager.session.prevented=!0,t.preventDefault()},t}();function mg(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}function bg(t){var e=t.length;if(1===e)return{x:Yv(t[0].clientX),y:Yv(t[0].clientY)};for(var i=0,n=0,o=0;o<e;)i+=t[o].clientX,n+=t[o].clientY,o++;return{x:Yv(i/e),y:Yv(n/e)}}function wg(t){for(var e=[],i=0;i<t.pointers.length;)e[i]={clientX:Yv(t.pointers[i].clientX),clientY:Yv(t.pointers[i].clientY)},i++;return{timeStamp:Gv(),pointers:e,center:bg(e),deltaX:t.deltaX,deltaY:t.deltaY}}function kg(t,e,i){i||(i=ug);var n=e[i[0]]-t[i[0]],o=e[i[1]]-t[i[1]];return Math.sqrt(n*n+o*o)}function _g(t,e,i){i||(i=ug);var n=e[i[0]]-t[i[0]],o=e[i[1]]-t[i[1]];return 180*Math.atan2(o,n)/Math.PI}function xg(t,e){return t===e?1:Xv(t)>=Xv(e)?t<0?2:4:e<0?8:dg}function Eg(t,e,i){return{x:e/t||0,y:i/t||0}}function Og(t,e){var i=t.session,n=e.pointers,o=n.length;i.firstInput||(i.firstInput=wg(e)),o>1&&!i.firstMultiple?i.firstMultiple=wg(e):1===o&&(i.firstMultiple=!1);var r=i.firstInput,s=i.firstMultiple,a=s?s.center:r.center,h=e.center=bg(n);e.timeStamp=Gv(),e.deltaTime=e.timeStamp-r.timeStamp,e.angle=_g(a,h),e.distance=kg(a,h),function(t,e){var i=e.center,n=t.offsetDelta||{},o=t.prevDelta||{},r=t.prevInput||{};1!==e.eventType&&4!==r.eventType||(o=t.prevDelta={x:r.deltaX||0,y:r.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=o.x+(i.x-n.x),e.deltaY=o.y+(i.y-n.y)}(i,e),e.offsetDirection=xg(e.deltaX,e.deltaY);var l,d,c=Eg(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=Xv(c.x)>Xv(c.y)?c.x:c.y,e.scale=s?(l=s.pointers,kg((d=n)[0],d[1],fg)/kg(l[0],l[1],fg)):1,e.rotation=s?function(t,e){return _g(e[1],e[0],fg)+_g(t[1],t[0],fg)}(s.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,function(t,e){var i,n,o,r,s=t.lastInterval||e,a=e.timeStamp-s.timeStamp;if(8!==e.eventType&&(a>25||void 0===s.velocity)){var h=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,d=Eg(a,h,l);n=d.x,o=d.y,i=Xv(d.x)>Xv(d.y)?d.x:d.y,r=xg(h,l),t.lastInterval=e}else i=s.velocity,n=s.velocityX,o=s.velocityY,r=s.direction;e.velocity=i,e.velocityX=n,e.velocityY=o,e.direction=r}(i,e);var u,f=t.element,p=e.srcEvent;mg(u=p.composedPath?p.composedPath()[0]:p.path?p.path[0]:p.target,f)&&(f=u),e.target=f}function Cg(t,e,i){var n=i.pointers.length,o=i.changedPointers.length,r=1&e&&n-o==0,s=12&e&&n-o==0;i.isFirst=!!r,i.isFinal=!!s,r&&(t.session={}),i.eventType=e,Og(t,i),t.emit(\"hammer.input\",i),t.recognize(i),t.session.prevInput=i}function Sg(t){return t.trim().split(/\\s+/g)}function Tg(t,e,i){pg(Sg(e),(function(e){t.addEventListener(e,i,!1)}))}function Mg(t,e,i){pg(Sg(e),(function(e){t.removeEventListener(e,i,!1)}))}function Pg(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||window}var Dg=function(){function t(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){vg(t.options.enable,[t])&&i.handler(e)},this.init()}var e=t.prototype;return e.handler=function(){},e.init=function(){this.evEl&&Tg(this.element,this.evEl,this.domHandler),this.evTarget&&Tg(this.target,this.evTarget,this.domHandler),this.evWin&&Tg(Pg(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&Mg(this.element,this.evEl,this.domHandler),this.evTarget&&Mg(this.target,this.evTarget,this.domHandler),this.evWin&&Mg(Pg(this.element),this.evWin,this.domHandler)},t}();function Ig(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;n<t.length;){if(i&&t[n][i]==e||!i&&t[n]===e)return n;n++}return-1}var Bg={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},zg={2:hg,3:\"pen\",4:lg,5:\"kinect\"},Ng=\"pointerdown\",Fg=\"pointermove pointerup pointercancel\";Wv.MSPointerEvent&&!Wv.PointerEvent&&(Ng=\"MSPointerDown\",Fg=\"MSPointerMove MSPointerUp MSPointerCancel\");var Ag=function(t){function e(){var i,n=e.prototype;return n.evEl=Ng,n.evWin=Fg,(i=t.apply(this,arguments)||this).store=i.manager.session.pointerEvents=[],i}return Lv(e,t),e.prototype.handler=function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace(\"ms\",\"\"),o=Bg[n],r=zg[t.pointerType]||t.pointerType,s=r===hg,a=Ig(e,t.pointerId,\"pointerId\");1&o&&(0===t.button||s)?a<0&&(e.push(t),a=e.length-1):12&o&&(i=!0),a<0||(e[a]=t,this.callback(this.manager,o,{pointers:e,changedPointers:[t],pointerType:r,srcEvent:t}),i&&e.splice(a,1))},e}(Dg);function jg(t){return Array.prototype.slice.call(t,0)}function Rg(t,e,i){for(var n=[],o=[],r=0;r<t.length;){var s=e?t[r][e]:t[r];Ig(o,s)<0&&n.push(t[r]),o[r]=s,r++}return i&&(n=e?n.sort((function(t,i){return t[e]>i[e]})):n.sort()),n}var Lg={touchstart:1,touchmove:2,touchend:4,touchcancel:8},Hg=\"touchstart touchmove touchend touchcancel\",Wg=function(t){function e(){var i;return e.prototype.evTarget=Hg,(i=t.apply(this,arguments)||this).targetIds={},i}return Lv(e,t),e.prototype.handler=function(t){var e=Lg[t.type],i=qg.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:hg,srcEvent:t})},e}(Dg);function qg(t,e){var i,n,o=jg(t.touches),r=this.targetIds;if(3&e&&1===o.length)return r[o[0].identifier]=!0,[o,o];var s=jg(t.changedTouches),a=[],h=this.target;if(n=o.filter((function(t){return mg(t.target,h)})),1===e)for(i=0;i<n.length;)r[n[i].identifier]=!0,i++;for(i=0;i<s.length;)r[s[i].identifier]&&a.push(s[i]),12&e&&delete r[s[i].identifier],i++;return a.length?[Rg(n.concat(a),\"identifier\",!0),a]:void 0}var Vg={mousedown:1,mousemove:2,mouseup:4},Ug=\"mousedown\",Yg=\"mousemove mouseup\",Xg=function(t){function e(){var i,n=e.prototype;return n.evEl=Ug,n.evWin=Yg,(i=t.apply(this,arguments)||this).pressed=!1,i}return Lv(e,t),e.prototype.handler=function(t){var e=Vg[t.type];1&e&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:lg,srcEvent:t}))},e}(Dg);function Gg(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var i={x:e.clientX,y:e.clientY},n=this.lastTouches;this.lastTouches.push(i);setTimeout((function(){var t=n.indexOf(i);t>-1&&n.splice(t,1)}),2500)}}function Kg(t,e){1&t?(this.primaryTouch=e.changedPointers[0].identifier,Gg.call(this,e)):12&t&&Gg.call(this,e)}function $g(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var o=this.lastTouches[n],r=Math.abs(e-o.x),s=Math.abs(i-o.y);if(r<=25&&s<=25)return!0}return!1}var Zg=function(){return function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this).handler=function(t,e,i){var o=i.pointerType===hg,r=i.pointerType===lg;if(!(r&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(o)Kg.call(Hv(Hv(n)),e,i);else if(r&&$g.call(Hv(Hv(n)),i))return;n.callback(t,e,i)}},n.touch=new Wg(n.manager,n.handler),n.mouse=new Xg(n.manager,n.handler),n.primaryTouch=null,n.lastTouches=[],n}return Lv(e,t),e.prototype.destroy=function(){this.touch.destroy(),this.mouse.destroy()},e}(Dg)}();function Qg(t,e,i){return!!Array.isArray(t)&&(pg(t,i[e],i),!0)}var Jg=32,ty=1;function ey(t,e){var i=e.manager;return i?i.get(t):t}function iy(t){return 16&t?\"cancel\":8&t?\"end\":4&t?\"move\":2&t?\"start\":\"\"}var ny=function(){function t(t){void 0===t&&(t={}),this.options=Rv({enable:!0},t),this.id=ty++,this.manager=null,this.state=1,this.simultaneous={},this.requireFail=[]}var e=t.prototype;return e.set=function(t){return qv(this.options,t),this.manager&&this.manager.touchAction.update(),this},e.recognizeWith=function(t){if(Qg(t,\"recognizeWith\",this))return this;var e=this.simultaneous;return e[(t=ey(t,this)).id]||(e[t.id]=t,t.recognizeWith(this)),this},e.dropRecognizeWith=function(t){return Qg(t,\"dropRecognizeWith\",this)||(t=ey(t,this),delete this.simultaneous[t.id]),this},e.requireFailure=function(t){if(Qg(t,\"requireFailure\",this))return this;var e=this.requireFail;return-1===Ig(e,t=ey(t,this))&&(e.push(t),t.requireFailure(this)),this},e.dropRequireFailure=function(t){if(Qg(t,\"dropRequireFailure\",this))return this;t=ey(t,this);var e=Ig(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(t){return!!this.simultaneous[t.id]},e.emit=function(t){var e=this,i=this.state;function n(i){e.manager.emit(i,t)}i<8&&n(e.options.event+iy(i)),n(e.options.event),t.additionalEvent&&n(t.additionalEvent),i>=8&&n(e.options.event+iy(i))},e.tryEmit=function(t){if(this.canEmit())return this.emit(t);this.state=Jg},e.canEmit=function(){for(var t=0;t<this.requireFail.length;){if(!(33&this.requireFail[t].state))return!1;t++}return!0},e.recognize=function(t){var e=qv({},t);if(!vg(this.options.enable,[this,e]))return this.reset(),void(this.state=Jg);56&this.state&&(this.state=1),this.state=this.process(e),30&this.state&&this.tryEmit(e)},e.process=function(t){},e.getTouchAction=function(){},e.reset=function(){},t}(),oy=function(t){function e(e){var i;return void 0===e&&(e={}),(i=t.call(this,Rv({event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},e))||this).pTime=!1,i.pCenter=!1,i._timer=null,i._input=null,i.count=0,i}Lv(e,t);var i=e.prototype;return i.getTouchAction=function(){return[tg]},i.process=function(t){var e=this,i=this.options,n=t.pointers.length===i.pointers,o=t.distance<i.threshold,r=t.deltaTime<i.time;if(this.reset(),1&t.eventType&&0===this.count)return this.failTimeout();if(o&&r&&n){if(4!==t.eventType)return this.failTimeout();var s=!this.pTime||t.timeStamp-this.pTime<i.interval,a=!this.pCenter||kg(this.pCenter,t.center)<i.posThreshold;if(this.pTime=t.timeStamp,this.pCenter=t.center,a&&s?this.count+=1:this.count=1,this._input=t,0===this.count%i.taps)return this.hasRequireFailures()?(this._timer=setTimeout((function(){e.state=8,e.tryEmit()}),i.interval),2):8}return Jg},i.failTimeout=function(){var t=this;return this._timer=setTimeout((function(){t.state=Jg}),this.options.interval),Jg},i.reset=function(){clearTimeout(this._timer)},i.emit=function(){8===this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))},e}(ny),ry=function(t){function e(e){return void 0===e&&(e={}),t.call(this,Rv({pointers:1},e))||this}Lv(e,t);var i=e.prototype;return i.attrTest=function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},i.process=function(t){var e=this.state,i=t.eventType,n=6&e,o=this.attrTest(t);return n&&(8&i||!o)?16|e:n||o?4&i?8|e:2&e?4|e:2:Jg},e}(ny);function sy(t){return t===dg?\"down\":8===t?\"up\":2===t?\"left\":4===t?\"right\":\"\"}var ay=function(t){function e(e){var i;return void 0===e&&(e={}),(i=t.call(this,Rv({event:\"pan\",threshold:10,pointers:1,direction:30},e))||this).pX=null,i.pY=null,i}Lv(e,t);var i=e.prototype;return i.getTouchAction=function(){var t=this.options.direction,e=[];return 6&t&&e.push(ng),t&cg&&e.push(ig),e},i.directionTest=function(t){var e=this.options,i=!0,n=t.distance,o=t.direction,r=t.deltaX,s=t.deltaY;return o&e.direction||(6&e.direction?(o=0===r?1:r<0?2:4,i=r!==this.pX,n=Math.abs(t.deltaX)):(o=0===s?1:s<0?8:dg,i=s!==this.pY,n=Math.abs(t.deltaY))),t.direction=o,i&&n>e.threshold&&o&e.direction},i.attrTest=function(t){return ry.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},i.emit=function(e){this.pX=e.deltaX,this.pY=e.deltaY;var i=sy(e.direction);i&&(e.additionalEvent=this.options.event+i),t.prototype.emit.call(this,e)},e}(ry),hy=function(t){function e(e){return void 0===e&&(e={}),t.call(this,Rv({event:\"swipe\",threshold:10,velocity:.3,direction:30,pointers:1},e))||this}Lv(e,t);var i=e.prototype;return i.getTouchAction=function(){return ay.prototype.getTouchAction.call(this)},i.attrTest=function(e){var i,n=this.options.direction;return 30&n?i=e.overallVelocity:6&n?i=e.overallVelocityX:n&cg&&(i=e.overallVelocityY),t.prototype.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers===this.options.pointers&&Xv(i)>this.options.velocity&&4&e.eventType},i.emit=function(t){var e=sy(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)},e}(ry),ly=function(t){function e(e){return void 0===e&&(e={}),t.call(this,Rv({event:\"pinch\",threshold:0,pointers:2},e))||this}Lv(e,t);var i=e.prototype;return i.getTouchAction=function(){return[eg]},i.attrTest=function(e){return t.prototype.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},i.emit=function(e){if(1!==e.scale){var i=e.scale<1?\"in\":\"out\";e.additionalEvent=this.options.event+i}t.prototype.emit.call(this,e)},e}(ry),dy=function(t){function e(e){return void 0===e&&(e={}),t.call(this,Rv({event:\"rotate\",threshold:0,pointers:2},e))||this}Lv(e,t);var i=e.prototype;return i.getTouchAction=function(){return[eg]},i.attrTest=function(e){return t.prototype.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)},e}(ry),cy=function(t){function e(e){var i;return void 0===e&&(e={}),(i=t.call(this,Rv({event:\"press\",pointers:1,time:251,threshold:9},e))||this)._timer=null,i._input=null,i}Lv(e,t);var i=e.prototype;return i.getTouchAction=function(){return[Jv]},i.process=function(t){var e=this,i=this.options,n=t.pointers.length===i.pointers,o=t.distance<i.threshold,r=t.deltaTime>i.time;if(this._input=t,!o||!n||12&t.eventType&&!r)this.reset();else if(1&t.eventType)this.reset(),this._timer=setTimeout((function(){e.state=8,e.tryEmit()}),i.time);else if(4&t.eventType)return 8;return Jg},i.reset=function(){clearTimeout(this._timer)},i.emit=function(t){8===this.state&&(t&&4&t.eventType?this.manager.emit(this.options.event+\"up\",t):(this._input.timeStamp=Gv(),this.manager.emit(this.options.event,this._input)))},e}(ny),uy={domEvents:!1,touchAction:Qv,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}},fy=[[dy,{enable:!1}],[ly,{enable:!1},[\"rotate\"]],[hy,{direction:6}],[ay,{direction:6},[\"swipe\"]],[oy],[oy,{event:\"doubletap\",taps:2},[\"tap\"]],[cy]];function py(t,e){var i,n=t.element;n.style&&(pg(t.options.cssProps,(function(o,r){i=Kv(n.style,r),e?(t.oldCssProps[i]=n.style[i],n.style[i]=o):n.style[i]=t.oldCssProps[i]||\"\"})),e||(t.oldCssProps={}))}var vy=function(){function t(t,e){var i,n=this;this.options=qv({},uy,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=new((i=this).options.inputClass||(sg?Ag:ag?Wg:rg?Zg:Xg))(i,Cg),this.touchAction=new yg(this,this.options.touchAction),py(this,!0),pg(this.options.recognizers,(function(t){var e=n.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])}),this)}var e=t.prototype;return e.set=function(t){return qv(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},e.stop=function(t){this.session.stopped=t?2:1},e.recognize=function(t){var e=this.session;if(!e.stopped){var i;this.touchAction.preventDefaults(t);var n=this.recognizers,o=e.curRecognizer;(!o||o&&8&o.state)&&(e.curRecognizer=null,o=null);for(var r=0;r<n.length;)i=n[r],2===e.stopped||o&&i!==o&&!i.canRecognizeWith(o)?i.reset():i.recognize(t),!o&&14&i.state&&(e.curRecognizer=i,o=i),r++}},e.get=function(t){if(t instanceof ny)return t;for(var e=this.recognizers,i=0;i<e.length;i++)if(e[i].options.event===t)return e[i];return null},e.add=function(t){if(Qg(t,\"add\",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},e.remove=function(t){if(Qg(t,\"remove\",this))return this;var e=this.get(t);if(t){var i=this.recognizers,n=Ig(i,e);-1!==n&&(i.splice(n,1),this.touchAction.update())}return this},e.on=function(t,e){if(void 0===t||void 0===e)return this;var i=this.handlers;return pg(Sg(t),(function(t){i[t]=i[t]||[],i[t].push(e)})),this},e.off=function(t,e){if(void 0===t)return this;var i=this.handlers;return pg(Sg(t),(function(t){e?i[t]&&i[t].splice(Ig(i[t],e),1):delete i[t]})),this},e.emit=function(t,e){this.options.domEvents&&function(t,e){var i=document.createEvent(\"Event\");i.initEvent(t,!0,!0),i.gesture=e,e.target.dispatchEvent(i)}(t,e);var i=this.handlers[t]&&this.handlers[t].slice();if(i&&i.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var n=0;n<i.length;)i[n](e),n++}},e.destroy=function(){this.element&&py(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null},t}(),gy={touchstart:1,touchmove:2,touchend:4,touchcancel:8},yy=\"touchstart\",my=\"touchstart touchmove touchend touchcancel\",by=function(t){function e(){var i,n=e.prototype;return n.evTarget=yy,n.evWin=my,(i=t.apply(this,arguments)||this).started=!1,i}return Lv(e,t),e.prototype.handler=function(t){var e=gy[t.type];if(1===e&&(this.started=!0),this.started){var i=wy.call(this,t,e);12&e&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:hg,srcEvent:t})}},e}(Dg);function wy(t,e){var i=jg(t.touches),n=jg(t.changedTouches);return 12&e&&(i=Rg(i.concat(n),\"identifier\",!0)),[i,n]}function ky(t,e,i){var n=\"DEPRECATED METHOD: \"+e+\"\\n\"+i+\" AT \\n\";return function(){var e=new Error(\"get-stack-trace\"),i=e&&e.stack?e.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",o=window.console&&(window.console.warn||window.console.log);return o&&o.call(window.console,n,i),t.apply(this,arguments)}}var _y=ky((function(t,e,i){for(var n=Object.keys(e),o=0;o<n.length;)(!i||i&&void 0===t[n[o]])&&(t[n[o]]=e[n[o]]),o++;return t}),\"extend\",\"Use `assign`.\"),xy=ky((function(t,e){return _y(t,e,!0)}),\"merge\",\"Use `assign`.\");function Ey(t,e,i){var n,o=e.prototype;(n=t.prototype=Object.create(o)).constructor=t,n._super=o,i&&qv(n,i)}function Oy(t,e){return function(){return t.apply(e,arguments)}}var Cy=function(){var t=function(t,e){return void 0===e&&(e={}),new vy(t,Rv({recognizers:fy.concat()},e))};return t.VERSION=\"2.0.17-rc\",t.DIRECTION_ALL=30,t.DIRECTION_DOWN=dg,t.DIRECTION_LEFT=2,t.DIRECTION_RIGHT=4,t.DIRECTION_UP=8,t.DIRECTION_HORIZONTAL=6,t.DIRECTION_VERTICAL=cg,t.DIRECTION_NONE=1,t.DIRECTION_DOWN=dg,t.INPUT_START=1,t.INPUT_MOVE=2,t.INPUT_END=4,t.INPUT_CANCEL=8,t.STATE_POSSIBLE=1,t.STATE_BEGAN=2,t.STATE_CHANGED=4,t.STATE_ENDED=8,t.STATE_RECOGNIZED=8,t.STATE_CANCELLED=16,t.STATE_FAILED=Jg,t.Manager=vy,t.Input=Dg,t.TouchAction=yg,t.TouchInput=Wg,t.MouseInput=Xg,t.PointerEventInput=Ag,t.TouchMouseInput=Zg,t.SingleTouchInput=by,t.Recognizer=ny,t.AttrRecognizer=ry,t.Tap=oy,t.Pan=ay,t.Swipe=hy,t.Pinch=ly,t.Rotate=dy,t.Press=cy,t.on=Tg,t.off=Mg,t.each=pg,t.merge=xy,t.extend=_y,t.bindFn=Oy,t.assign=qv,t.inherit=Ey,t.bindFn=Oy,t.prefixed=Kv,t.toArray=jg,t.inArray=Ig,t.uniqueArray=Rg,t.splitStr=Sg,t.boolOrFn=vg,t.hasParent=mg,t.addEventListeners=Tg,t.removeEventListeners=Mg,t.defaults=qv({},uy,{preset:fy}),t}(),Sy=Cy;function Ty(t,e){var i=bu(t);if(hd){var n=hd(t);e&&(n=Xf(n).call(n,(function(e){return bd(t,e).enumerable}))),i.push.apply(i,n)}return i}function My(t){for(var e=1;e<arguments.length;e++){var i,n,o=null!=arguments[e]?arguments[e]:{};e%2?Fu(i=Ty(Object(o),!0)).call(i,(function(e){$d(t,e,o[e])})):Pd?Ad(t,Pd(o)):Fu(n=Ty(Object(o))).call(n,(function(e){Ud(t,e,bd(o,e))}))}return t}function Py(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return Dy(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Dy(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function Dy(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var Iy=tu(\"DELETE\");function By(t){for(var e,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return zy.apply(void 0,su(e=[{},t]).call(e,n))}function zy(){var t=Ny.apply(void 0,arguments);return Ay(t),t}function Ny(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];if(e.length<2)return e[0];var n;if(e.length>2)return Ny.apply(void 0,su(n=[zy(e[0],e[1])]).call(n,Jc(au(e).call(e,2))));var o,r=e[0],s=e[1],a=Py(hu(s));try{for(a.s();!(o=a.n()).done;){var h=o.value;Object.prototype.propertyIsEnumerable.call(s,h)&&(s[h]===Iy?delete r[h]:null===r[h]||null===s[h]||\"object\"!==Qc(r[h])||\"object\"!==Qc(s[h])||lu(r[h])||lu(s[h])?r[h]=Fy(s[h]):r[h]=Ny(r[h],s[h]))}}catch(t){a.e(t)}finally{a.f()}return r}function Fy(t){return lu(t)?gu(t).call(t,(function(t){return Fy(t)})):\"object\"===Qc(t)&&null!==t?Ny({},t):t}function Ay(t){for(var e=0,i=bu(t);e<i.length;e++){var n=i[e];t[n]===Iy?delete t[n]:\"object\"===Qc(t[n])&&null!==t[n]&&Ay(t[n])}}function jy(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return Ry(e.length?e:[Eu()])}function Ry(t){var e=function(){for(var t=Ly(),e=t(\" \"),i=t(\" \"),n=t(\" \"),o=0;o<arguments.length;o++)(e-=t(o<0||arguments.length<=o?void 0:arguments[o]))<0&&(e+=1),(i-=t(o<0||arguments.length<=o?void 0:arguments[o]))<0&&(i+=1),(n-=t(o<0||arguments.length<=o?void 0:arguments[o]))<0&&(n+=1);return[e,i,n]}(t),i=Kc(e,3),n=i[0],o=i[1],r=i[2],s=1,a=function(){var t=2091639*n+2.3283064365386963e-10*s;return n=o,o=r,r=t-(s=0|t)};return a.uint32=function(){return 4294967296*a()},a.fract53=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.algorithm=\"Alea\",a.seed=t,a.version=\"0.9\",a}function Ly(){var t=4022871197;return function(e){for(var i=e.toString(),n=0;n<i.length;n++){var o=.02519603282416938*(t+=i.charCodeAt(n));o-=t=o>>>0,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)}}var Hy=\"undefined\"!=typeof window?window.Hammer||Sy:function(){return function(){var t=function(){};return{on:t,off:t,destroy:t,emit:t,get:function(){return{set:t}}}}()};function Wy(t){var e,i=this;this._cleanupQueue=[],this.active=!1,this._dom={container:t,overlay:document.createElement(\"div\")},this._dom.overlay.classList.add(\"vis-overlay\"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push((function(){i._dom.overlay.parentNode.removeChild(i._dom.overlay)}));var n=Hy(this._dom.overlay);n.on(\"tap\",zn(e=this._onTapOverlay).call(e,this)),this._cleanupQueue.push((function(){n.destroy()}));var o=[\"tap\",\"doubletap\",\"press\",\"pinch\",\"pan\",\"panstart\",\"panmove\",\"panend\"];Fu(o).call(o,(function(t){n.on(t,(function(t){t.srcEvent.stopPropagation()}))})),document&&document.body&&(this._onClick=function(e){(function(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1})(e.target,t)||i.deactivate()},document.body.addEventListener(\"click\",this._onClick),this._cleanupQueue.push((function(){document.body.removeEventListener(\"click\",i._onClick)}))),this._escListener=function(t){(\"key\"in t?\"Escape\"===t.key:27===t.keyCode)&&i.deactivate()}}Wn(Wy.prototype),Wy.current=null,Wy.prototype.destroy=function(){var t,e;this.deactivate();var i,n=Py(Yu(t=ff(e=this._cleanupQueue).call(e,0)).call(t));try{for(n.s();!(i=n.n()).done;){(0,i.value)()}}catch(t){n.e(t)}finally{n.f()}},Wy.prototype.activate=function(){Wy.current&&Wy.current.deactivate(),Wy.current=this,this.active=!0,this._dom.overlay.style.display=\"none\",this._dom.container.classList.add(\"vis-active\"),this.emit(\"change\"),this.emit(\"activate\"),document.body.addEventListener(\"keydown\",this._escListener)},Wy.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display=\"block\",this._dom.container.classList.remove(\"vis-active\"),document.body.removeEventListener(\"keydown\",this._escListener),this.emit(\"change\"),this.emit(\"deactivate\")},Wy.prototype._onTapOverlay=function(t){this.activate(),t.srcEvent.stopPropagation()};var qy=/^\\/?Date\\((-?\\d+)/i,Vy=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,Uy=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,Yy=/^rgb\\( *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *\\)$/i,Xy=/^rgba\\( *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *([01]|0?\\.\\d+) *\\)$/i;function Gy(t){return t instanceof Number||\"number\"==typeof t}function Ky(t){if(t)for(;!0===t.hasChildNodes();){var e=t.firstChild;e&&(Ky(e),t.removeChild(e))}}function $y(t){return t instanceof String||\"string\"==typeof t}function Zy(t){return\"object\"===Qc(t)&&null!==t}function Qy(t,e,i,n){var o=!1;!0===n&&(o=null===e[i]&&void 0!==t[i]),o?delete t[i]:t[i]=e[i]}function Jy(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var n in t)if(void 0!==e[n])if(null===e[n]||\"object\"!==Qc(e[n]))Qy(t,e,n,i);else{var o=t[n],r=e[n];Zy(o)&&Zy(r)&&Jy(o,r,i)}}var tm=un;function em(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(lu(i))throw new TypeError(\"Arrays are not supported by deepExtend\");for(var o=0;o<t.length;o++){var r=t[o];if(Object.prototype.hasOwnProperty.call(i,r))if(i[r]&&i[r].constructor===Object)void 0===e[r]&&(e[r]={}),e[r].constructor===Object?nm(e[r],i[r],!1,n):Qy(e,i,r,n);else{if(lu(i[r]))throw new TypeError(\"Arrays are not supported by deepExtend\");Qy(e,i,r,n)}}return e}function im(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(lu(i))throw new TypeError(\"Arrays are not supported by deepExtend\");for(var o in i)if(Object.prototype.hasOwnProperty.call(i,o)&&!Nf(t).call(t,o))if(i[o]&&i[o].constructor===Object)void 0===e[o]&&(e[o]={}),e[o].constructor===Object?nm(e[o],i[o]):Qy(e,i,o,n);else if(lu(i[o])){e[o]=[];for(var r=0;r<i[o].length;r++)e[o].push(i[o][r])}else Qy(e,i,o,n);return e}function nm(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)||!0===i)if(\"object\"===Qc(e[o])&&null!==e[o]&&Lf(e[o])===Object.prototype)void 0===t[o]?t[o]=nm({},e[o],i):\"object\"===Qc(t[o])&&null!==t[o]&&Lf(t[o])===Object.prototype?nm(t[o],e[o],i):Qy(t,e,o,n);else if(lu(e[o])){var r;t[o]=au(r=e[o]).call(r)}else Qy(t,e,o,n);return t}function om(t,e){var i;return su(i=[]).call(i,Jc(t),[e])}function rm(t){return au(t).call(t)}function sm(t){return t.getBoundingClientRect().left}function am(t){return t.getBoundingClientRect().top}function hm(t,e){if(lu(t))for(var i=t.length,n=0;n<i;n++)e(t[n],n,t);else for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e(t[o],o,t)}var lm=ip;function dm(t,e,i,n){var o;t.addEventListener?(void 0===n&&(n=!1),\"mousewheel\"===e&&Nf(o=navigator.userAgent).call(o,\"Firefox\")&&(e=\"DOMMouseScroll\"),t.addEventListener(e,i,n)):t.attachEvent(\"on\"+e,i)}function cm(t,e,i,n){var o;t.removeEventListener?(void 0===n&&(n=!1),\"mousewheel\"===e&&Nf(o=navigator.userAgent).call(o,\"Firefox\")&&(e=\"DOMMouseScroll\"),t.removeEventListener(e,i,n)):t.detachEvent(\"on\"+e,i)}var um={asBoolean:function(t,e){return\"function\"==typeof t&&(t=t()),null!=t?0!=t:e||null},asNumber:function(t,e){return\"function\"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},asString:function(t,e){return\"function\"==typeof t&&(t=t()),null!=t?String(t):e||null},asSize:function(t,e){return\"function\"==typeof t&&(t=t()),$y(t)?t:Gy(t)?t+\"px\":e||null},asElement:function(t,e){return\"function\"==typeof t&&(t=t()),t||e||null}};function fm(t){var e;switch(t.length){case 3:case 4:return(e=Uy.exec(t))?{r:Ep(e[1]+e[1],16),g:Ep(e[2]+e[2],16),b:Ep(e[3]+e[3],16)}:null;case 6:case 7:return(e=Vy.exec(t))?{r:Ep(e[1],16),g:Ep(e[2],16),b:Ep(e[3],16)}:null;default:return null}}function pm(t,e){if(Nf(t).call(t,\"rgba\"))return t;if(Nf(t).call(t,\"rgb\")){var i=t.substr(Fp(t).call(t,\"(\")+1).replace(\")\",\"\").split(\",\");return\"rgba(\"+i[0]+\",\"+i[1]+\",\"+i[2]+\",\"+e+\")\"}var n=fm(t);return null==n?t:\"rgba(\"+n.r+\",\"+n.g+\",\"+n.b+\",\"+e+\")\"}function vm(t,e,i){var n;return\"#\"+au(n=((1<<24)+(t<<16)+(e<<8)+i).toString(16)).call(n,1)}function gm(t,e){if($y(t)){var i=t;if(Em(i)){var n,o=gu(n=i.substr(4).substr(0,i.length-5).split(\",\")).call(n,(function(t){return Ep(t)}));i=vm(o[0],o[1],o[2])}if(!0===xm(i)){var r=_m(i),s={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},a={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},h=km(a.h,a.s,a.v),l=km(s.h,s.s,s.v);return{background:i,border:h,highlight:{background:l,border:h},hover:{background:l,border:h}}}return{background:i,border:i,highlight:{background:i,border:i},hover:{background:i,border:i}}}return e?{background:t.background||e.background,border:t.border||e.border,highlight:$y(t.highlight)?{border:t.highlight,background:t.highlight}:{background:t.highlight&&t.highlight.background||e.highlight.background,border:t.highlight&&t.highlight.border||e.highlight.border},hover:$y(t.hover)?{border:t.hover,background:t.hover}:{border:t.hover&&t.hover.border||e.hover.border,background:t.hover&&t.hover.background||e.hover.background}}:{background:t.background||void 0,border:t.border||void 0,highlight:$y(t.highlight)?{border:t.highlight,background:t.highlight}:{background:t.highlight&&t.highlight.background||void 0,border:t.highlight&&t.highlight.border||void 0},hover:$y(t.hover)?{border:t.hover,background:t.hover}:{border:t.hover&&t.hover.border||void 0,background:t.hover&&t.hover.background||void 0}}}function ym(t,e,i){t/=255,e/=255,i/=255;var n=Math.min(t,Math.min(e,i)),o=Math.max(t,Math.max(e,i));return n===o?{h:0,s:0,v:n}:{h:60*((t===n?3:i===n?1:5)-(t===n?e-i:i===n?t-e:i-t)/(o-n))/360,s:(o-n)/o,v:o}}var mm=function(t){var e,i={};return Fu(e=t.split(\";\")).call(e,(function(t){if(\"\"!=Yp(t).call(t)){var e,n,o=t.split(\":\"),r=Yp(e=o[0]).call(e),s=Yp(n=o[1]).call(n);i[r]=s}})),i},bm=function(t){var e;return gu(e=bu(t)).call(e,(function(e){return e+\": \"+t[e]})).join(\"; \")};function wm(t,e,i){var n,o,r,s=Math.floor(6*t),a=6*t-s,h=i*(1-e),l=i*(1-a*e),d=i*(1-(1-a)*e);switch(s%6){case 0:n=i,o=d,r=h;break;case 1:n=l,o=i,r=h;break;case 2:n=h,o=i,r=d;break;case 3:n=h,o=l,r=i;break;case 4:n=d,o=h,r=i;break;case 5:n=i,o=h,r=l}return{r:Math.floor(255*n),g:Math.floor(255*o),b:Math.floor(255*r)}}function km(t,e,i){var n=wm(t,e,i);return vm(n.r,n.g,n.b)}function _m(t){var e=fm(t);if(!e)throw new TypeError(\"'\".concat(t,\"' is not a valid color.\"));return ym(e.r,e.g,e.b)}function xm(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}function Em(t){return Yy.test(t)}function Om(t){return Xy.test(t)}function Cm(t){if(null===t||\"object\"!==Qc(t))return null;if(t instanceof Element)return t;var e=Kp(t);for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&\"object\"==Qc(t[i])&&(e[i]=Cm(t[i]));return e}function Sm(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=function(t){return null!=t},r=function(t){return null!==t&&\"object\"===Qc(t)},s=function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0};if(!r(t))throw new Error(\"Parameter mergeTarget must be an object\");if(!r(e))throw new Error(\"Parameter options must be an object\");if(!o(i))throw new Error(\"Parameter option must have a value\");if(!r(n))throw new Error(\"Parameter globalOptions must be an object\");var a=function(t,e,i){r(t[i])||(t[i]={});var n=e[i],o=t[i];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[s]=n[s])},h=e[i],l=r(n)&&!s(n),d=l?n[i]:void 0,c=d?d.enabled:void 0;if(void 0!==h){if(\"boolean\"==typeof h)return r(t[i])||(t[i]={}),void(t[i].enabled=h);if(null===h&&!r(t[i])){if(!o(d))return;t[i]=Kp(d)}if(r(h)){var u=!0;void 0!==h.enabled?u=h.enabled:void 0!==c&&(u=d.enabled),a(t,e,i),t[i].enabled=u}}}var Tm={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}};function Mm(t,e){var i;lu(e)||(e=[e]);var n,o=Py(t);try{for(o.s();!(n=o.n()).done;){var r=n.value;if(r){i=r[e[0]];for(var s=1;s<e.length;s++)i&&(i=i[e[s]]);if(void 0!==i)break}}}catch(t){o.e(t)}finally{o.f()}return i}var Pm={black:\"#000000\",navy:\"#000080\",darkblue:\"#00008B\",mediumblue:\"#0000CD\",blue:\"#0000FF\",darkgreen:\"#006400\",green:\"#008000\",teal:\"#008080\",darkcyan:\"#008B8B\",deepskyblue:\"#00BFFF\",darkturquoise:\"#00CED1\",mediumspringgreen:\"#00FA9A\",lime:\"#00FF00\",springgreen:\"#00FF7F\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",midnightblue:\"#191970\",dodgerblue:\"#1E90FF\",lightseagreen:\"#20B2AA\",forestgreen:\"#228B22\",seagreen:\"#2E8B57\",darkslategray:\"#2F4F4F\",limegreen:\"#32CD32\",mediumseagreen:\"#3CB371\",turquoise:\"#40E0D0\",royalblue:\"#4169E1\",steelblue:\"#4682B4\",darkslateblue:\"#483D8B\",mediumturquoise:\"#48D1CC\",indigo:\"#4B0082\",darkolivegreen:\"#556B2F\",cadetblue:\"#5F9EA0\",cornflowerblue:\"#6495ED\",mediumaquamarine:\"#66CDAA\",dimgray:\"#696969\",slateblue:\"#6A5ACD\",olivedrab:\"#6B8E23\",slategray:\"#708090\",lightslategray:\"#778899\",mediumslateblue:\"#7B68EE\",lawngreen:\"#7CFC00\",chartreuse:\"#7FFF00\",aquamarine:\"#7FFFD4\",maroon:\"#800000\",purple:\"#800080\",olive:\"#808000\",gray:\"#808080\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",blueviolet:\"#8A2BE2\",darkred:\"#8B0000\",darkmagenta:\"#8B008B\",saddlebrown:\"#8B4513\",darkseagreen:\"#8FBC8F\",lightgreen:\"#90EE90\",mediumpurple:\"#9370D8\",darkviolet:\"#9400D3\",palegreen:\"#98FB98\",darkorchid:\"#9932CC\",yellowgreen:\"#9ACD32\",sienna:\"#A0522D\",brown:\"#A52A2A\",darkgray:\"#A9A9A9\",lightblue:\"#ADD8E6\",greenyellow:\"#ADFF2F\",paleturquoise:\"#AFEEEE\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",firebrick:\"#B22222\",darkgoldenrod:\"#B8860B\",mediumorchid:\"#BA55D3\",rosybrown:\"#BC8F8F\",darkkhaki:\"#BDB76B\",silver:\"#C0C0C0\",mediumvioletred:\"#C71585\",indianred:\"#CD5C5C\",peru:\"#CD853F\",chocolate:\"#D2691E\",tan:\"#D2B48C\",lightgrey:\"#D3D3D3\",palevioletred:\"#D87093\",thistle:\"#D8BFD8\",orchid:\"#DA70D6\",goldenrod:\"#DAA520\",crimson:\"#DC143C\",gainsboro:\"#DCDCDC\",plum:\"#DDA0DD\",burlywood:\"#DEB887\",lightcyan:\"#E0FFFF\",lavender:\"#E6E6FA\",darksalmon:\"#E9967A\",violet:\"#EE82EE\",palegoldenrod:\"#EEE8AA\",lightcoral:\"#F08080\",khaki:\"#F0E68C\",aliceblue:\"#F0F8FF\",honeydew:\"#F0FFF0\",azure:\"#F0FFFF\",sandybrown:\"#F4A460\",wheat:\"#F5DEB3\",beige:\"#F5F5DC\",whitesmoke:\"#F5F5F5\",mintcream:\"#F5FFFA\",ghostwhite:\"#F8F8FF\",salmon:\"#FA8072\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lightgoldenrodyellow:\"#FAFAD2\",oldlace:\"#FDF5E6\",red:\"#FF0000\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",deeppink:\"#FF1493\",orangered:\"#FF4500\",tomato:\"#FF6347\",hotpink:\"#FF69B4\",coral:\"#FF7F50\",darkorange:\"#FF8C00\",lightsalmon:\"#FFA07A\",orange:\"#FFA500\",lightpink:\"#FFB6C1\",pink:\"#FFC0CB\",gold:\"#FFD700\",peachpuff:\"#FFDAB9\",navajowhite:\"#FFDEAD\",moccasin:\"#FFE4B5\",bisque:\"#FFE4C4\",mistyrose:\"#FFE4E1\",blanchedalmond:\"#FFEBCD\",papayawhip:\"#FFEFD5\",lavenderblush:\"#FFF0F5\",seashell:\"#FFF5EE\",cornsilk:\"#FFF8DC\",lemonchiffon:\"#FFFACD\",floralwhite:\"#FFFAF0\",snow:\"#FFFAFA\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",ivory:\"#FFFFF0\",white:\"#FFFFFF\"},Dm=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;Yd(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return Kd(t,[{key:\"insertTo\",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:\"setUpdateCallback\",value:function(t){if(\"function\"!=typeof t)throw new Error(\"Function attempted to set as colorPicker update callback is not a function.\");this.updateCallback=t}},{key:\"setCloseCallback\",value:function(t){if(\"function\"!=typeof t)throw new Error(\"Function attempted to set as colorPicker closing callback is not a function.\");this.closeCallback=t}},{key:\"_isColorString\",value:function(t){if(\"string\"==typeof t)return Pm[t]}},{key:\"setColor\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(\"none\"!==t){var i,n=this._isColorString(t);if(void 0!==n&&(t=n),!0===$y(t)){if(!0===Em(t)){var o=t.substr(4).substr(0,t.length-5).split(\",\");i={r:o[0],g:o[1],b:o[2],a:1}}else if(!0===Om(t)){var r=t.substr(5).substr(0,t.length-6).split(\",\");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===xm(t)){var s=fm(t);i={r:s.r,g:s.g,b:s.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var a=void 0!==t.a?t.a:\"1.0\";i={r:t.r,g:t.g,b:t.b,a:a}}if(void 0===i)throw new Error(\"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \"+gv(t));this._setColor(i,e)}}},{key:\"show\",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display=\"block\",this._generateHueCircle()}},{key:\"_hide\",value:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];!0===e&&(this.previousColor=un({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display=\"none\",Sv((function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)}),0)}},{key:\"_save\",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:\"_apply\",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:\"_loadLast\",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert(\"There is no last color to load...\")}},{key:\"_setColor\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!0===e&&(this.initialColor=un({},t)),this.color=t;var i=ym(t.r,t.g,t.b),n=2*Math.PI,o=this.r*i.s,r=this.centerCoordinates.x+o*Math.sin(n*i.h),s=this.centerCoordinates.y+o*Math.cos(n*i.h);this.colorPickerSelector.style.left=r-.5*this.colorPickerSelector.clientWidth+\"px\",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+\"px\",this._updatePicker(t)}},{key:\"_setOpacity\",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:\"_setBrightness\",value:function(t){var e=ym(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=wm(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:\"_updatePicker\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=ym(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext(\"2d\");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var n=this.colorPickerCanvas.clientWidth,o=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,n,o),i.putImageData(this.hueCircle,0,0),i.fillStyle=\"rgba(0,0,0,\"+(1-e.v)+\")\",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),jv(i).call(i),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\",this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}},{key:\"_setSize\",value:function(){this.colorPickerCanvas.style.width=\"100%\",this.colorPickerCanvas.style.height=\"100%\",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:\"_create\",value:function(){var t,e,i,n;if(this.frame=document.createElement(\"div\"),this.frame.className=\"vis-color-picker\",this.colorPickerDiv=document.createElement(\"div\"),this.colorPickerSelector=document.createElement(\"div\"),this.colorPickerSelector.className=\"vis-selector\",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement(\"canvas\"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var o=this.colorPickerCanvas.getContext(\"2d\");this.pixelRatio=(window.devicePixelRatio||1)/(o.webkitBackingStorePixelRatio||o.mozBackingStorePixelRatio||o.msBackingStorePixelRatio||o.oBackingStorePixelRatio||o.backingStorePixelRatio||1),this.colorPickerCanvas.getContext(\"2d\").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var r=document.createElement(\"DIV\");r.style.color=\"red\",r.style.fontWeight=\"bold\",r.style.padding=\"10px\",r.innerText=\"Error: your browser does not support HTML canvas\",this.colorPickerCanvas.appendChild(r)}this.colorPickerDiv.className=\"vis-color\",this.opacityDiv=document.createElement(\"div\"),this.opacityDiv.className=\"vis-opacity\",this.brightnessDiv=document.createElement(\"div\"),this.brightnessDiv.className=\"vis-brightness\",this.arrowDiv=document.createElement(\"div\"),this.arrowDiv.className=\"vis-arrow\",this.opacityRange=document.createElement(\"input\");try{this.opacityRange.type=\"range\",this.opacityRange.min=\"0\",this.opacityRange.max=\"100\"}catch(t){}this.opacityRange.value=\"100\",this.opacityRange.className=\"vis-range\",this.brightnessRange=document.createElement(\"input\");try{this.brightnessRange.type=\"range\",this.brightnessRange.min=\"0\",this.brightnessRange.max=\"100\"}catch(t){}this.brightnessRange.value=\"100\",this.brightnessRange.className=\"vis-range\",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var s=this;this.opacityRange.onchange=function(){s._setOpacity(this.value)},this.opacityRange.oninput=function(){s._setOpacity(this.value)},this.brightnessRange.onchange=function(){s._setBrightness(this.value)},this.brightnessRange.oninput=function(){s._setBrightness(this.value)},this.brightnessLabel=document.createElement(\"div\"),this.brightnessLabel.className=\"vis-label vis-brightness\",this.brightnessLabel.innerText=\"brightness:\",this.opacityLabel=document.createElement(\"div\"),this.opacityLabel.className=\"vis-label vis-opacity\",this.opacityLabel.innerText=\"opacity:\",this.newColorDiv=document.createElement(\"div\"),this.newColorDiv.className=\"vis-new-color\",this.newColorDiv.innerText=\"new\",this.initialColorDiv=document.createElement(\"div\"),this.initialColorDiv.className=\"vis-initial-color\",this.initialColorDiv.innerText=\"initial\",this.cancelButton=document.createElement(\"div\"),this.cancelButton.className=\"vis-button vis-cancel\",this.cancelButton.innerText=\"cancel\",this.cancelButton.onclick=zn(t=this._hide).call(t,this,!1),this.applyButton=document.createElement(\"div\"),this.applyButton.className=\"vis-button vis-apply\",this.applyButton.innerText=\"apply\",this.applyButton.onclick=zn(e=this._apply).call(e,this),this.saveButton=document.createElement(\"div\"),this.saveButton.className=\"vis-button vis-save\",this.saveButton.innerText=\"save\",this.saveButton.onclick=zn(i=this._save).call(i,this),this.loadButton=document.createElement(\"div\"),this.loadButton.className=\"vis-button vis-load\",this.loadButton.innerText=\"load last\",this.loadButton.onclick=zn(n=this._loadLast).call(n,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:\"_bindHammer\",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new Hy(this.colorPickerCanvas),this.hammer.get(\"pinch\").set({enable:!0}),this.hammer.on(\"hammer.input\",(function(e){e.isFirst&&t._moveSelector(e)})),this.hammer.on(\"tap\",(function(e){t._moveSelector(e)})),this.hammer.on(\"panstart\",(function(e){t._moveSelector(e)})),this.hammer.on(\"panmove\",(function(e){t._moveSelector(e)})),this.hammer.on(\"panend\",(function(e){t._moveSelector(e)}))}},{key:\"_generateHueCircle\",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext(\"2d\");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e,i,n,o,r=this.colorPickerCanvas.clientWidth,s=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,r,s),this.centerCoordinates={x:.5*r,y:.5*s},this.r=.49*r;var a,h=2*Math.PI/360,l=1/this.r;for(n=0;n<360;n++)for(o=0;o<this.r;o++)e=this.centerCoordinates.x+o*Math.sin(h*n),i=this.centerCoordinates.y+o*Math.cos(h*n),a=wm(.002777777777777778*n,o*l,1),t.fillStyle=\"rgb(\"+a.r+\",\"+a.g+\",\"+a.b+\")\",t.fillRect(e-.5,i-.5,2,2);t.strokeStyle=\"rgba(0,0,0,1)\",t.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),t.stroke(),this.hueCircle=t.getImageData(0,0,r,s)}this.generated=!0}},{key:\"_moveSelector\",value:function(t){var e=this.colorPickerDiv.getBoundingClientRect(),i=t.center.x-e.left,n=t.center.y-e.top,o=.5*this.colorPickerDiv.clientHeight,r=.5*this.colorPickerDiv.clientWidth,s=i-r,a=n-o,h=Math.atan2(s,a),l=.98*Math.min(Math.sqrt(s*s+a*a),r),d=Math.cos(h)*l+o,c=Math.sin(h)*l+r;this.colorPickerSelector.style.top=d-.5*this.colorPickerSelector.clientHeight+\"px\",this.colorPickerSelector.style.left=c-.5*this.colorPickerSelector.clientWidth+\"px\";var u=h/(2*Math.PI);u=u<0?u+1:u;var f=l/this.r,p=ym(this.color.r,this.color.g,this.color.b);p.h=u,p.s=f;var v=wm(p.h,p.s,p.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor=\"rgba(\"+this.initialColor.r+\",\"+this.initialColor.g+\",\"+this.initialColor.b+\",\"+this.initialColor.a+\")\",this.newColorDiv.style.backgroundColor=\"rgba(\"+this.color.r+\",\"+this.color.g+\",\"+this.color.b+\",\"+this.color.a+\")\"}}]),t}();function Im(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];if(e.length<1)throw new TypeError(\"Invalid arguments.\");if(1===e.length)return document.createTextNode(e[0]);var n=document.createElement(e[0]);return n.appendChild(Im.apply(void 0,Jc(au(e).call(e,1)))),n}var Bm,zm=function(){function t(e,i,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return!1};Yd(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.hideOption=r,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},un(this.options,this.defaultOptions),this.configureOptions=n,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new Dm(o),this.wrapper=void 0}return Kd(t,[{key:\"setOptions\",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;if(\"string\"==typeof t)this.options.filter=t;else if(lu(t))this.options.filter=t.join();else if(\"object\"===Qc(t)){if(null==t)throw new TypeError(\"options cannot be null\");void 0!==t.container&&(this.options.container=t.container),void 0!==Xf(t)&&(this.options.filter=Xf(t)),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)}else\"boolean\"==typeof t?(this.options.filter=!0,e=t):\"function\"==typeof t&&(this.options.filter=t,e=!0);!1===Xf(this.options)&&(e=!1),this.options.enabled=e}this._clean()}},{key:\"setModuleOptions\",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:\"_create\",value:function(){this._clean(),this.changedOptions=[];var t=Xf(this.options),e=0,i=!1;for(var n in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,n)&&(this.allowCreation=!1,i=!1,\"function\"==typeof t?i=(i=t(n,[]))||this._handleObject(this.configureOptions[n],[n],!0):!0!==t&&-1===Fp(t).call(t,n)||(i=!0),!1!==i&&(this.allowCreation=!0,e>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),e++);this._makeButton(),this._push()}},{key:\"_push\",value:function(){this.wrapper=document.createElement(\"div\"),this.wrapper.className=\"vis-configuration-wrapper\",this.container.appendChild(this.wrapper);for(var t=0;t<this.domElements.length;t++)this.wrapper.appendChild(this.domElements[t]);this._showPopupIfNeeded()}},{key:\"_clean\",value:function(){for(var t=0;t<this.domElements.length;t++)this.wrapper.removeChild(this.domElements[t]);void 0!==this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=void 0),this.domElements=[],this._removePopup()}},{key:\"_getValue\",value:function(t){for(var e=this.moduleOptions,i=0;i<t.length;i++){if(void 0===e[t[i]]){e=void 0;break}e=e[t[i]]}return e}},{key:\"_makeItem\",value:function(t){if(!0===this.allowCreation){var e=document.createElement(\"div\");e.className=\"vis-configuration vis-config-item vis-config-s\"+t.length;for(var i=arguments.length,n=new Array(i>1?i-1:0),o=1;o<i;o++)n[o-1]=arguments[o];return Fu(n).call(n,(function(t){e.appendChild(t)})),this.domElements.push(e),this.domElements.length}return 0}},{key:\"_makeHeader\",value:function(t){var e=document.createElement(\"div\");e.className=\"vis-configuration vis-config-header\",e.innerText=t,this._makeItem([],e)}},{key:\"_makeLabel\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=document.createElement(\"div\");if(n.className=\"vis-configuration vis-config-label vis-config-s\"+e.length,!0===i){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(Im(\"i\",\"b\",t))}else n.innerText=t+\":\";return n}},{key:\"_makeDropdown\",value:function(t,e,i){var n=document.createElement(\"select\");n.className=\"vis-configuration vis-config-select\";var o=0;void 0!==e&&-1!==Fp(t).call(t,e)&&(o=Fp(t).call(t,e));for(var r=0;r<t.length;r++){var s=document.createElement(\"option\");s.value=t[r],r===o&&(s.selected=\"selected\"),s.innerText=t[r],n.appendChild(s)}var a=this;n.onchange=function(){a._update(this.value,i)};var h=this._makeLabel(i[i.length-1],i);this._makeItem(i,h,n)}},{key:\"_makeRange\",value:function(t,e,i){var n=t[0],o=t[1],r=t[2],s=t[3],a=document.createElement(\"input\");a.className=\"vis-configuration vis-config-range\";try{a.type=\"range\",a.min=o,a.max=r}catch(t){}a.step=s;var h=\"\",l=0;if(void 0!==e){var d=1.2;e<0&&e*d<o?(a.min=Math.ceil(e*d),l=a.min,h=\"range increased\"):e/d<o&&(a.min=Math.ceil(e/d),l=a.min,h=\"range increased\"),e*d>r&&1!==r&&(a.max=Math.ceil(e*d),l=a.max,h=\"range increased\"),a.value=e}else a.value=n;var c=document.createElement(\"input\");c.className=\"vis-configuration vis-config-rangeinput\",c.value=a.value;var u=this;a.onchange=function(){c.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var f=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,f,a,c);\"\"!==h&&this.popupHistory[p]!==l&&(this.popupHistory[p]=l,this._setupPopup(h,p))}},{key:\"_makeButton\",value:function(){var t=this;if(!0===this.options.showButton){var e=document.createElement(\"div\");e.className=\"vis-configuration vis-config-button\",e.innerText=\"generate options\",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className=\"vis-configuration vis-config-button hover\"},e.onmouseout=function(){e.className=\"vis-configuration vis-config-button\"},this.optionsContainer=document.createElement(\"div\"),this.optionsContainer.className=\"vis-configuration vis-config-option-container\",this.domElements.push(this.optionsContainer),this.domElements.push(e)}}},{key:\"_setupPopup\",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter<this.popupLimit){var n=document.createElement(\"div\");n.id=\"vis-configuration-popup\",n.className=\"vis-configuration-popup\",n.innerText=t,n.onclick=function(){i._removePopup()},this.popupCounter+=1,this.popupDiv={html:n,index:e}}}},{key:\"_removePopup\",value:function(){void 0!==this.popupDiv.html&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}},{key:\"_showPopupIfNeeded\",value:function(){var t=this;if(void 0!==this.popupDiv.html){var e=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=e.left+\"px\",this.popupDiv.html.style.top=e.top-30+\"px\",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=Sv((function(){t.popupDiv.html.style.opacity=0}),1500),this.popupDiv.deleteTimeout=Sv((function(){t._removePopup()}),1800)}}},{key:\"_makeCheckbox\",value:function(t,e,i){var n=document.createElement(\"input\");n.type=\"checkbox\",n.className=\"vis-configuration vis-config-checkbox\",n.checked=t,void 0!==e&&(n.checked=e,e!==t&&(\"object\"===Qc(t)?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));var o=this;n.onchange=function(){o._update(this.checked,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,n)}},{key:\"_makeTextInput\",value:function(t,e,i){var n=document.createElement(\"input\");n.type=\"text\",n.className=\"vis-configuration vis-config-text\",n.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var o=this;n.onchange=function(){o._update(this.value,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,n)}},{key:\"_makeColorField\",value:function(t,e,i){var n=this,o=t[1],r=document.createElement(\"div\");\"none\"!==(e=void 0===e?o:e)?(r.className=\"vis-configuration vis-config-colorBlock\",r.style.backgroundColor=e):r.className=\"vis-configuration vis-config-colorBlock none\",e=void 0===e?o:e,r.onclick=function(){n._showColorPicker(e,r,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,r)}},{key:\"_showColorPicker\",value:function(t,e,i){var n=this;e.onclick=function(){},this.colorPicker.insertTo(e),this.colorPicker.show(),this.colorPicker.setColor(t),this.colorPicker.setUpdateCallback((function(t){var o=\"rgba(\"+t.r+\",\"+t.g+\",\"+t.b+\",\"+t.a+\")\";e.style.backgroundColor=o,n._update(o,i)})),this.colorPicker.setCloseCallback((function(){e.onclick=function(){n._showColorPicker(t,e,i)}}))}},{key:\"_handleObject\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!1,o=Xf(this.options),r=!1;for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s)){n=!0;var a=t[s],h=om(e,s);if(\"function\"==typeof o&&!1===(n=o(s,e))&&!lu(a)&&\"string\"!=typeof a&&\"boolean\"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,n=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==n){r=!0;var l=this._getValue(h);if(lu(a))this._handleArray(a,l,h);else if(\"string\"==typeof a)this._makeTextInput(a,l,h);else if(\"boolean\"==typeof a)this._makeCheckbox(a,l,h);else if(a instanceof Object){if(!this.hideOption(e,s,this.moduleOptions))if(void 0!==a.enabled){var d=om(h,\"enabled\"),c=this._getValue(d);if(!0===c){var u=this._makeLabel(s,h,!0);this._makeItem(h,u),r=this._handleObject(a,h)||r}else this._makeCheckbox(a,c,h)}else{var f=this._makeLabel(s,h,!0);this._makeItem(h,f),r=this._handleObject(a,h)||r}}else console.error(\"dont know how to handle\",a,s,h)}}return r}},{key:\"_handleArray\",value:function(t,e,i){\"string\"==typeof t[0]&&\"color\"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):\"string\"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):\"number\"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:\"_update\",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit(\"configChange\",i),this.initialized=!0,this.parent.setOptions(i)}},{key:\"_constructOptions\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i;t=\"false\"!==(t=\"true\"===t||t)&&t;for(var o=0;o<e.length;o++)\"global\"!==e[o]&&(void 0===n[e[o]]&&(n[e[o]]={}),o!==e.length-1?n=n[e[o]]:n[e[o]]=t);return i}},{key:\"_printOptions\",value:function(){for(var t=this.getOptions();this.optionsContainer.firstChild;)this.optionsContainer.removeChild(this.optionsContainer.firstChild);this.optionsContainer.appendChild(Im(\"pre\",\"const options = \"+gv(t,null,2)))}},{key:\"getOptions\",value:function(){for(var t={},e=0;e<this.changedOptions.length;e++)this._constructOptions(this.changedOptions[e].value,this.changedOptions[e].path,t);return t}}]),t}(),Nm=function(){function t(e,i){Yd(this,t),this.container=e,this.overflowMethod=i||\"cap\",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement(\"div\"),this.frame.className=\"vis-tooltip\",this.container.appendChild(this.frame)}return Kd(t,[{key:\"setPosition\",value:function(t,e){this.x=Ep(t),this.y=Ep(e)}},{key:\"setText\",value:function(t){if(t instanceof Element){for(;this.frame.firstChild;)this.frame.removeChild(this.frame.firstChild);this.frame.appendChild(t)}else this.frame.innerText=t}},{key:\"show\",value:function(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,n=this.frame.parentNode.clientHeight,o=this.frame.parentNode.clientWidth,r=0,s=0;if(\"flip\"==this.overflowMethod){var a=!1,h=!0;this.y-e<this.padding&&(h=!1),this.x+i>o-this.padding&&(a=!0),r=a?this.x-i:this.x,s=h?this.y-e:this.y}else(s=this.y-e)+e+this.padding>n&&(s=n-e-this.padding),s<this.padding&&(s=this.padding),(r=this.x)+i+this.padding>o&&(r=o-i-this.padding),r<this.padding&&(r=this.padding);this.frame.style.left=r+\"px\",this.frame.style.top=s+\"px\",this.frame.style.visibility=\"visible\",this.hidden=!1}else this.hide()}},{key:\"hide\",value:function(){this.hidden=!0,this.frame.style.left=\"0\",this.frame.style.top=\"0\",this.frame.style.visibility=\"hidden\"}},{key:\"destroy\",value:function(){this.frame.parentNode.removeChild(this.frame)}}]),t}(),Fm=!1,Am=\"background: #FFeeee; color: #dd0000\",jm=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"validate\",value:function(e,i,n){Fm=!1,Bm=i;var o=i;return void 0!==n&&(o=i[n]),t.parse(e,o,[]),Fm}},{key:\"parse\",value:function(e,i,n){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.check(o,e,i,n)}},{key:\"check\",value:function(e,i,n,o){if(void 0!==n[e]||void 0!==n.__any__){var r=e,s=!0;void 0===n[e]&&void 0!==n.__any__&&(r=\"__any__\",s=\"object\"===t.getType(i[e]));var a=n[r];s&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,i,n,r,a,o)}else t.getSuggestion(e,n,o)}},{key:\"checkFields\",value:function(e,i,n,o,r,s){var a=function(i){console.error(\"%c\"+i+t.printLocation(s,e),Am)},h=t.getType(i[e]),l=r[h];void 0!==l?\"array\"===t.getType(l)&&-1===Fp(l).call(l,i[e])?(a('Invalid option detected in \"'+e+'\". Allowed values are:'+t.print(l)+' not \"'+i[e]+'\". '),Fm=!0):\"object\"===h&&\"__any__\"!==o&&(s=om(s,e),t.parse(i[e],n[o],s)):void 0===r.any&&(a('Invalid type received for \"'+e+'\". Expected: '+t.print(bu(r))+\". Received [\"+h+'] \"'+i[e]+'\"'),Fm=!0)}},{key:\"getType\",value:function(t){var e=Qc(t);return\"object\"===e?null===t?\"null\":t instanceof Boolean?\"boolean\":t instanceof Number?\"number\":t instanceof String?\"string\":lu(t)?\"array\":t instanceof Date?\"date\":void 0!==t.nodeType?\"dom\":!0===t._isAMomentObject?\"moment\":\"object\":\"number\"===e?\"number\":\"boolean\"===e?\"boolean\":\"string\"===e?\"string\":void 0===e?\"undefined\":e}},{key:\"getSuggestion\",value:function(e,i,n){var o,r=t.findInOptions(e,i,n,!1),s=t.findInOptions(e,Bm,[],!0);o=void 0!==r.indexMatch?\" in \"+t.printLocation(r.path,e,\"\")+'Perhaps it was incomplete? Did you mean: \"'+r.indexMatch+'\"?\\n\\n':s.distance<=4&&r.distance>s.distance?\" in \"+t.printLocation(r.path,e,\"\")+\"Perhaps it was misplaced? Matching option found at: \"+t.printLocation(s.path,s.closestMatch,\"\"):r.distance<=8?'. Did you mean \"'+r.closestMatch+'\"?'+t.printLocation(r.path,e):\". Did you mean one of these: \"+t.print(bu(i))+t.printLocation(n,e),console.error('%cUnknown option detected: \"'+e+'\"'+o,Am),Fm=!0}},{key:\"findInOptions\",value:function(e,i,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=1e9,s=\"\",a=[],h=e.toLowerCase(),l=void 0;for(var d in i){var c=void 0;if(void 0!==i[d].__type__&&!0===o){var u=t.findInOptions(e,i[d],om(n,d));r>u.distance&&(s=u.closestMatch,a=u.path,r=u.distance,l=u.indexMatch)}else{var f;-1!==Fp(f=d.toLowerCase()).call(f,h)&&(l=d),r>(c=t.levenshteinDistance(e,d))&&(s=d,a=rm(n),r=c)}}return{closestMatch:s,path:a,distance:r,indexMatch:l}}},{key:\"printLocation\",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"Problem value found at: \\n\",n=\"\\n\\n\"+i+\"options = {\\n\",o=0;o<t.length;o++){for(var r=0;r<o+1;r++)n+=\"  \";n+=t[o]+\": {\\n\"}for(var s=0;s<t.length+1;s++)n+=\"  \";n+=e+\"\\n\";for(var a=0;a<t.length+1;a++){for(var h=0;h<t.length-a;h++)n+=\"  \";n+=\"}\\n\"}return n+\"\\n\\n\"}},{key:\"print\",value:function(t){return gv(t).replace(/(\")|(\\[)|(\\])|(,\"__type__\")/g,\"\").replace(/(,)/g,\", \")}},{key:\"levenshteinDistance\",value:function(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;var i,n,o=[];for(i=0;i<=e.length;i++)o[i]=[i];for(n=0;n<=t.length;n++)o[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)==t.charAt(n-1)?o[i][n]=o[i-1][n-1]:o[i][n]=Math.min(o[i-1][n-1]+1,Math.min(o[i][n-1]+1,o[i-1][n]+1));return o[e.length][t.length]}}]),t}(),Rm=Wy,Lm=Dm,Hm=zm,Wm=Hy,qm=Nm,Vm=Am,Um=jm,Ym=Object.freeze({__proto__:null,Activator:Rm,Alea:jy,ColorPicker:Lm,Configurator:Hm,DELETE:Iy,HSVToHex:km,HSVToRGB:wm,Hammer:Wm,Popup:qm,RGBToHSV:ym,RGBToHex:vm,VALIDATOR_PRINT_STYLE:Vm,Validator:Um,addClassName:function(t,e){var i=t.className.split(\" \"),n=e.split(\" \");i=su(i).call(i,Xf(n).call(n,(function(t){return!Nf(i).call(i,t)}))),t.className=i.join(\" \")},addCssText:function(t,e){var i=mm(t.style.cssText),n=mm(e),o=My(My({},i),n);t.style.cssText=bm(o)},addEventListener:dm,binarySearchCustom:function(t,e,i,n){for(var o=0,r=0,s=t.length-1;r<=s&&o<1e4;){var a=Math.floor((r+s)/2),h=t[a],l=e(void 0===n?h[i]:h[i][n]);if(0==l)return a;-1==l?r=a+1:s=a-1,o++}return-1},binarySearchValue:function(t,e,i,n,o){var r,s,a,h,l=0,d=0,c=t.length-1;for(o=null!=o?o:function(t,e){return t==e?0:t<e?-1:1};d<=c&&l<1e4;){if(h=Math.floor(.5*(c+d)),r=t[Math.max(0,h-1)][i],s=t[h][i],a=t[Math.min(t.length-1,h+1)][i],0==o(s,e))return h;if(o(r,e)<0&&o(s,e)>0)return\"before\"==n?Math.max(0,h-1):h;if(o(s,e)<0&&o(a,e)>0)return\"before\"==n?h:Math.min(t.length-1,h+1);o(s,e)<0?d=h+1:c=h-1,l++}return-1},bridgeObject:Cm,copyAndExtendArray:om,copyArray:rm,deepExtend:nm,deepObjectAssign:zy,easingFunctions:Tm,equalArray:function(t,e){if(t.length!==e.length)return!1;for(var i=0,n=t.length;i<n;i++)if(t[i]!=e[i])return!1;return!0},extend:tm,fillIfDefined:Jy,forEach:hm,getAbsoluteLeft:sm,getAbsoluteRight:function(t){return t.getBoundingClientRect().right},getAbsoluteTop:am,getScrollBarWidth:function(){var t=document.createElement(\"p\");t.style.width=\"100%\",t.style.height=\"200px\";var e=document.createElement(\"div\");e.style.position=\"absolute\",e.style.top=\"0px\",e.style.left=\"0px\",e.style.visibility=\"hidden\",e.style.width=\"200px\",e.style.height=\"150px\",e.style.overflow=\"hidden\",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow=\"scroll\";var n=t.offsetWidth;return i==n&&(n=e.clientWidth),document.body.removeChild(e),i-n},getTarget:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,e=null;return t&&(t.target?e=t.target:t.srcElement&&(e=t.srcElement)),e instanceof Element&&(null==e.nodeType||3!=e.nodeType||(e=e.parentNode)instanceof Element)?e:null},getType:function(t){var e=Qc(t);return\"object\"===e?null===t?\"null\":t instanceof Boolean?\"Boolean\":t instanceof Number?\"Number\":t instanceof String?\"String\":lu(t)?\"Array\":t instanceof Date?\"Date\":\"Object\":\"number\"===e?\"Number\":\"boolean\"===e?\"Boolean\":\"string\"===e?\"String\":void 0===e?\"undefined\":e},hasParent:function(t,e){for(var i=t;i;){if(i===e)return!0;if(!i.parentNode)return!1;i=i.parentNode}return!1},hexToHSV:_m,hexToRGB:fm,insertSort:function(t,e){for(var i=0;i<t.length;i++){var n=t[i],o=void 0;for(o=i;o>0&&e(n,t[o-1])<0;o--)t[o]=t[o-1];t[o]=n}return t},isDate:function(t){if(t instanceof Date)return!0;if($y(t)){if(qy.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},isNumber:Gy,isObject:Zy,isString:$y,isValidHex:xm,isValidRGB:Em,isValidRGBA:Om,mergeOptions:Sm,option:um,overrideOpacity:pm,parseColor:gm,preventDefault:function(t){t||(t=window.event),t&&(t.preventDefault?t.preventDefault():t.returnValue=!1)},pureDeepObjectAssign:By,recursiveDOMDelete:Ky,removeClassName:function(t,e){var i=t.className.split(\" \"),n=e.split(\" \");i=Xf(i).call(i,(function(t){return!Nf(n).call(n,t)})),t.className=i.join(\" \")},removeCssText:function(t,e){var i=mm(t.style.cssText),n=mm(e);for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&delete i[o];t.style.cssText=bm(i)},removeEventListener:cm,selectiveBridgeObject:function(t,e){if(null!==e&&\"object\"===Qc(e)){for(var i=Kp(e),n=0;n<t.length;n++)Object.prototype.hasOwnProperty.call(e,t[n])&&\"object\"==Qc(e[t[n]])&&(i[t[n]]=Cm(e[t[n]]));return i}return null},selectiveDeepExtend:em,selectiveExtend:function(t,e){if(!lu(t))throw new Error(\"Array with property names expected as first argument\");for(var i=arguments.length,n=new Array(i>2?i-2:0),o=2;o<i;o++)n[o-2]=arguments[o];for(var r=0,s=n;r<s.length;r++)for(var a=s[r],h=0;h<t.length;h++){var l=t[h];a&&Object.prototype.hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},selectiveNotDeepExtend:im,throttle:function(t){var e=!1;return function(){e||(e=!0,requestAnimationFrame((function(){e=!1,t()})))}},toArray:lm,topMost:Mm,updateProperty:function(t,e,i){return t[e]!==i&&(t[e]=i,!0)}});function Xm(t){return eb=t,function(){var t={};ib=0,void(nb=eb.charAt(0)),pb(),\"strict\"===ob&&(t.strict=!0,pb());\"graph\"!==ob&&\"digraph\"!==ob||(t.type=ob,pb());rb===Qm&&(t.id=ob,pb());if(\"{\"!=ob)throw wb(\"Angle bracket { expected\");if(pb(),vb(t),\"}\"!=ob)throw wb(\"Angle bracket } expected\");if(pb(),\"\"!==ob)throw wb(\"End of file expected\");return pb(),delete t.node,delete t.edge,delete t.graph,t}()}var Gm={fontsize:\"font.size\",fontcolor:\"font.color\",labelfontcolor:\"font.color\",fontname:\"font.face\",color:[\"color.border\",\"color.background\"],fillcolor:\"color.background\",tooltip:\"title\",labeltooltip:\"title\"},Km=Kp(Gm);Km.color=\"color.color\",Km.style=\"dashes\";var $m=0,Zm=1,Qm=2,Jm=3,tb={\"{\":!0,\"}\":!0,\"[\":!0,\"]\":!0,\";\":!0,\"=\":!0,\",\":!0,\"->\":!0,\"--\":!0},eb=\"\",ib=0,nb=\"\",ob=\"\",rb=$m;function sb(){ib++,nb=eb.charAt(ib)}function ab(){return eb.charAt(ib+1)}function hb(t){var e=t.charCodeAt(0);return e<47?35===e||46===e:e<59?e>47:e<91?e>64:e<96?95===e:e<123&&e>96}function lb(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function db(t,e,i){for(var n=e.split(\".\"),o=t;n.length;){var r=n.shift();n.length?(o[r]||(o[r]={}),o=o[r]):o[r]=i}}function cb(t,e){for(var i,n,o=null,r=[t],s=t;s.parent;)r.push(s.parent),s=s.parent;if(s.nodes)for(i=0,n=s.nodes.length;i<n;i++)if(e.id===s.nodes[i].id){o=s.nodes[i];break}for(o||(o={id:e.id},t.node&&(o.attr=lb(o.attr,t.node))),i=r.length-1;i>=0;i--){var a,h=r[i];h.nodes||(h.nodes=[]),-1===Fp(a=h.nodes).call(a,o)&&h.nodes.push(o)}e.attr&&(o.attr=lb(o.attr,e.attr))}function ub(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=lb({},t.edge);e.attr=lb(i,e.attr)}}function fb(t,e,i,n,o){var r={from:e,to:i,type:n};return t.edge&&(r.attr=lb({},t.edge)),r.attr=lb(r.attr||{},o),null!=o&&o.hasOwnProperty(\"arrows\")&&null!=o.arrows&&(r.arrows={to:{enabled:!0,type:o.arrows.type}},o.arrows=null),r}function pb(){for(rb=$m,ob=\"\";\" \"===nb||\"\\t\"===nb||\"\\n\"===nb||\"\\r\"===nb;)sb();do{var t=!1;if(\"#\"===nb){for(var e=ib-1;\" \"===eb.charAt(e)||\"\\t\"===eb.charAt(e);)e--;if(\"\\n\"===eb.charAt(e)||\"\"===eb.charAt(e)){for(;\"\"!=nb&&\"\\n\"!=nb;)sb();t=!0}}if(\"/\"===nb&&\"/\"===ab()){for(;\"\"!=nb&&\"\\n\"!=nb;)sb();t=!0}if(\"/\"===nb&&\"*\"===ab()){for(;\"\"!=nb;){if(\"*\"===nb&&\"/\"===ab()){sb(),sb();break}sb()}t=!0}for(;\" \"===nb||\"\\t\"===nb||\"\\n\"===nb||\"\\r\"===nb;)sb()}while(t);if(\"\"!==nb){var i=nb+ab();if(tb[i])return rb=Zm,ob=i,sb(),void sb();if(tb[nb])return rb=Zm,ob=nb,void sb();if(hb(nb)||\"-\"===nb){for(ob+=nb,sb();hb(nb);)ob+=nb,sb();return\"false\"===ob?ob=!1:\"true\"===ob?ob=!0:isNaN(Number(ob))||(ob=Number(ob)),void(rb=Qm)}if('\"'===nb){for(sb();\"\"!=nb&&('\"'!=nb||'\"'===nb&&'\"'===ab());)'\"'===nb?(ob+=nb,sb()):\"\\\\\"===nb&&\"n\"===ab()?(ob+=\"\\n\",sb()):ob+=nb,sb();if('\"'!=nb)throw wb('End of string \" expected');return sb(),void(rb=Qm)}for(rb=Jm;\"\"!=nb;)ob+=nb,sb();throw new SyntaxError('Syntax error in part \"'+kb(ob,30)+'\"')}rb=Zm}function vb(t){for(;\"\"!==ob&&\"}\"!=ob;)gb(t),\";\"===ob&&pb()}function gb(t){var e=yb(t);if(e)mb(t,e);else{var i=function(t){if(\"node\"===ob)return pb(),t.node=bb(),\"node\";if(\"edge\"===ob)return pb(),t.edge=bb(),\"edge\";if(\"graph\"===ob)return pb(),t.graph=bb(),\"graph\";return null}(t);if(!i){if(rb!=Qm)throw wb(\"Identifier expected\");var n=ob;if(pb(),\"=\"===ob){if(pb(),rb!=Qm)throw wb(\"Identifier expected\");t[n]=ob,pb()}else!function(t,e){var i={id:e},n=bb();n&&(i.attr=n);cb(t,i),mb(t,e)}(t,n)}}}function yb(t){var e=null;if(\"subgraph\"===ob&&((e={}).type=\"subgraph\",pb(),rb===Qm&&(e.id=ob,pb())),\"{\"===ob){if(pb(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,vb(e),\"}\"!=ob)throw wb(\"Angle bracket } expected\");pb(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function mb(t,e){for(;\"->\"===ob||\"--\"===ob;){var i,n=ob;pb();var o=yb(t);if(o)i=o;else{if(rb!=Qm)throw wb(\"Identifier or subgraph expected\");cb(t,{id:i=ob}),pb()}ub(t,fb(t,e,i,n,bb())),e=i}}function bb(){for(var t,e,i=null,n={dashed:!0,solid:!1,dotted:[1,5]},o={dot:\"circle\",box:\"box\",crow:\"crow\",curve:\"curve\",icurve:\"inv_curve\",normal:\"triangle\",inv:\"inv_triangle\",diamond:\"diamond\",tee:\"bar\",vee:\"vee\"},r=new Array,s=new Array;\"[\"===ob;){for(pb(),i={};\"\"!==ob&&\"]\"!=ob;){if(rb!=Qm)throw wb(\"Attribute name expected\");var a=ob;if(pb(),\"=\"!=ob)throw wb(\"Equal sign = expected\");if(pb(),rb!=Qm)throw wb(\"Attribute value expected\");var h=ob;\"style\"===a&&(h=n[h]),\"arrowhead\"===a&&(a=\"arrows\",h={to:{enabled:!0,type:o[h]}}),\"arrowtail\"===a&&(a=\"arrows\",h={from:{enabled:!0,type:o[h]}}),r.push({attr:i,name:a,value:h}),s.push(a),pb(),\",\"==ob&&pb()}if(\"]\"!=ob)throw wb(\"Bracket ] expected\");pb()}if(Nf(s).call(s,\"dir\")){var l={arrows:{}};for(t=0;t<r.length;t++)if(\"arrows\"===r[t].name)if(null!=r[t].value.to)l.arrows.to=t;else{if(null==r[t].value.from)throw wb(\"Invalid value of arrows\");l.arrows.from=t}else\"dir\"===r[t].name&&(l.dir=t);var d,c,u=r[l.dir].value;if(!Nf(s).call(s,\"arrows\"))if(\"both\"===u)r.push({attr:r[l.dir].attr,name:\"arrows\",value:{to:{enabled:!0}}}),l.arrows.to=r.length-1,r.push({attr:r[l.dir].attr,name:\"arrows\",value:{from:{enabled:!0}}}),l.arrows.from=r.length-1;else if(\"forward\"===u)r.push({attr:r[l.dir].attr,name:\"arrows\",value:{to:{enabled:!0}}}),l.arrows.to=r.length-1;else if(\"back\"===u)r.push({attr:r[l.dir].attr,name:\"arrows\",value:{from:{enabled:!0}}}),l.arrows.from=r.length-1;else{if(\"none\"!==u)throw wb('Invalid dir type \"'+u+'\"');r.push({attr:r[l.dir].attr,name:\"arrows\",value:\"\"}),l.arrows.to=r.length-1}if(\"both\"===u)l.arrows.to&&l.arrows.from?(c=r[l.arrows.to].value.to.type,d=r[l.arrows.from].value.from.type,r[l.arrows.to]={attr:r[l.arrows.to].attr,name:r[l.arrows.to].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}},ff(r).call(r,l.arrows.from,1)):l.arrows.to?(c=r[l.arrows.to].value.to.type,d=\"arrow\",r[l.arrows.to]={attr:r[l.arrows.to].attr,name:r[l.arrows.to].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}}):l.arrows.from&&(c=\"arrow\",d=r[l.arrows.from].value.from.type,r[l.arrows.from]={attr:r[l.arrows.from].attr,name:r[l.arrows.from].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}});else if(\"back\"===u)l.arrows.to&&l.arrows.from?(c=\"\",d=r[l.arrows.from].value.from.type,r[l.arrows.from]={attr:r[l.arrows.from].attr,name:r[l.arrows.from].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}}):l.arrows.to?(c=\"\",d=\"arrow\",l.arrows.from=l.arrows.to,r[l.arrows.from]={attr:r[l.arrows.from].attr,name:r[l.arrows.from].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}}):l.arrows.from&&(c=\"\",d=r[l.arrows.from].value.from.type,r[l.arrows.to]={attr:r[l.arrows.from].attr,name:r[l.arrows.from].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}}),r[l.arrows.from]={attr:r[l.arrows.from].attr,name:r[l.arrows.from].name,value:{from:{enabled:!0,type:r[l.arrows.from].value.from.type}}};else if(\"none\"===u){var f;r[f=l.arrows.to?l.arrows.to:l.arrows.from]={attr:r[f].attr,name:r[f].name,value:\"\"}}else{if(\"forward\"!==u)throw wb('Invalid dir type \"'+u+'\"');l.arrows.to&&l.arrows.from||l.arrows.to?(c=r[l.arrows.to].value.to.type,d=\"\",r[l.arrows.to]={attr:r[l.arrows.to].attr,name:r[l.arrows.to].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}}):l.arrows.from&&(c=\"arrow\",d=\"\",l.arrows.to=l.arrows.from,r[l.arrows.to]={attr:r[l.arrows.to].attr,name:r[l.arrows.to].name,value:{to:{enabled:!0,type:c},from:{enabled:!0,type:d}}}),r[l.arrows.to]={attr:r[l.arrows.to].attr,name:r[l.arrows.to].name,value:{to:{enabled:!0,type:r[l.arrows.to].value.to.type}}}}ff(r).call(r,l.dir,1)}if(Nf(s).call(s,\"penwidth\")){var p=[];for(e=r.length,t=0;t<e;t++)\"width\"!==r[t].name&&(\"penwidth\"===r[t].name&&(r[t].name=\"width\"),p.push(r[t]));r=p}for(e=r.length,t=0;t<e;t++)db(r[t].attr,r[t].name,r[t].value);return i}function wb(t){return new SyntaxError(t+', got \"'+kb(ob,30)+'\" (char '+ib+\")\")}function kb(t,e){return t.length<=e?t:t.substr(0,27)+\"...\"}function _b(t,e,i){for(var n=e.split(\".\"),o=n.pop(),r=t,s=0;s<n.length;s++){var a=n[s];a in r||(r[a]={}),r=r[a]}return r[o]=i,t}function xb(t,e){var i={};for(var n in t)if(t.hasOwnProperty(n)){var o=e[n];lu(o)?Fu(o).call(o,(function(e){_b(i,e,t[n])})):_b(i,\"string\"==typeof o?o:n,t[n])}return i}function Eb(t){var e,i=Xm(t),n={nodes:[],edges:[],options:{}};i.nodes&&Fu(e=i.nodes).call(e,(function(t){var e={id:t.id,label:String(t.label||t.id)};lb(e,xb(t.attr,Gm)),e.image&&(e.shape=\"image\"),n.nodes.push(e)}));if(i.edges){var o,r=function(t){var e={from:t.from,to:t.to};return lb(e,xb(t.attr,Km)),null==e.arrows&&\"->\"===t.type&&(e.arrows=\"to\"),e};Fu(o=i.edges).call(o,(function(t){var e,i,o,s,a,h,l;(e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges)&&Fu(o=t.from.edges).call(o,(function(t){var e=r(t);n.edges.push(e)}));(a=i,h=function(e,i){var o=fb(n,e.id,i.id,t.type,t.attr),s=r(o);n.edges.push(s)},lu(s=e)?Fu(s).call(s,(function(t){lu(a)?Fu(a).call(a,(function(e){h(t,e)})):h(t,a)})):lu(a)?Fu(a).call(a,(function(t){h(s,t)})):h(s,a),t.to instanceof Object&&t.to.edges)&&Fu(l=t.to.edges).call(l,(function(t){var e=r(t);n.edges.push(e)}))}))}return i.attr&&(n.options=i.attr),n}var Ob=Object.freeze({__proto__:null,parseDOT:Xm,DOTToGraph:Eb});function Cb(t,e){var i,n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};null!=e&&(null!=e.fixed&&(n.nodes.fixed=e.fixed),null!=e.parseColor&&(n.nodes.parseColor=e.parseColor),null!=e.inheritColor&&(n.edges.inheritColor=e.inheritColor));var o=t.edges,r=gu(o).call(o,(function(t){var e={from:t.source,id:t.id,to:t.target};return null!=t.attributes&&(e.attributes=t.attributes),null!=t.label&&(e.label=t.label),null!=t.attributes&&null!=t.attributes.title&&(e.title=t.attributes.title),\"Directed\"===t.type&&(e.arrows=\"to\"),t.color&&!1===n.edges.inheritColor&&(e.color=t.color),e}));return{nodes:gu(i=t.nodes).call(i,(function(t){var e={id:t.id,fixed:n.nodes.fixed&&null!=t.x&&null!=t.y};return null!=t.attributes&&(e.attributes=t.attributes),null!=t.label&&(e.label=t.label),null!=t.size&&(e.size=t.size),null!=t.attributes&&null!=t.attributes.title&&(e.title=t.attributes.title),null!=t.title&&(e.title=t.title),null!=t.x&&(e.x=t.x),null!=t.y&&(e.y=t.y),null!=t.color&&(!0===n.nodes.parseColor?e.color=t.color:e.color={background:t.color,border:t.color,highlight:{background:t.color,border:t.color},hover:{background:t.color,border:t.color}}),e})),edges:r}}var Sb=Object.freeze({__proto__:null,parseGephi:Cb}),Tb=Object.freeze({__proto__:null,en:{addDescription:\"Click in an empty space to place a new node.\",addEdge:\"Add Edge\",addNode:\"Add Node\",back:\"Back\",close:\"Close\",createEdgeError:\"Cannot link edges to a cluster.\",del:\"Delete selected\",deleteClusterError:\"Clusters cannot be deleted.\",edgeDescription:\"Click on a node and drag the edge to another node to connect them.\",edit:\"Edit\",editClusterError:\"Clusters cannot be edited.\",editEdge:\"Edit Edge\",editEdgeDescription:\"Click on the control points and drag them to a node to connect to it.\",editNode:\"Edit Node\"},de:{addDescription:\"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",addEdge:\"Kante hinzufügen\",addNode:\"Knoten hinzufügen\",back:\"Zurück\",close:\"Schließen\",createEdgeError:\"Es ist nicht möglich, Kanten mit Clustern zu verbinden.\",del:\"Lösche Auswahl\",deleteClusterError:\"Cluster können nicht gelöscht werden.\",edgeDescription:\"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",edit:\"Editieren\",editClusterError:\"Cluster können nicht editiert werden.\",editEdge:\"Kante editieren\",editEdgeDescription:\"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",editNode:\"Knoten editieren\"},es:{addDescription:\"Haga clic en un lugar vacío para colocar un nuevo nodo.\",addEdge:\"Añadir arista\",addNode:\"Añadir nodo\",back:\"Atrás\",close:\"Cerrar\",createEdgeError:\"No se puede conectar una arista a un grupo.\",del:\"Eliminar selección\",deleteClusterError:\"No es posible eliminar grupos.\",edgeDescription:\"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",edit:\"Editar\",editClusterError:\"No es posible editar grupos.\",editEdge:\"Editar arista\",editEdgeDescription:\"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",editNode:\"Editar nodo\"},it:{addDescription:\"Clicca per aggiungere un nuovo nodo\",addEdge:\"Aggiungi un vertice\",addNode:\"Aggiungi un nodo\",back:\"Indietro\",close:\"Chiudere\",createEdgeError:\"Non si possono collegare vertici ad un cluster\",del:\"Cancella la selezione\",deleteClusterError:\"I cluster non possono essere cancellati\",edgeDescription:\"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",edit:\"Modifica\",editClusterError:\"I clusters non possono essere modificati.\",editEdge:\"Modifica il vertice\",editEdgeDescription:\"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",editNode:\"Modifica il nodo\"},nl:{addDescription:\"Klik op een leeg gebied om een nieuwe node te maken.\",addEdge:\"Link toevoegen\",addNode:\"Node toevoegen\",back:\"Terug\",close:\"Sluiten\",createEdgeError:\"Kan geen link maken naar een cluster.\",del:\"Selectie verwijderen\",deleteClusterError:\"Clusters kunnen niet worden verwijderd.\",edgeDescription:\"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",edit:\"Wijzigen\",editClusterError:\"Clusters kunnen niet worden aangepast.\",editEdge:\"Link wijzigen\",editEdgeDescription:\"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",editNode:\"Node wijzigen\"},pt:{addDescription:\"Clique em um espaço em branco para adicionar um novo nó\",addEdge:\"Adicionar aresta\",addNode:\"Adicionar nó\",back:\"Voltar\",close:\"Fechar\",createEdgeError:\"Não foi possível linkar arestas a um cluster.\",del:\"Remover selecionado\",deleteClusterError:\"Clusters não puderam ser removidos.\",edgeDescription:\"Clique em um nó e arraste a aresta até outro nó para conectá-los\",edit:\"Editar\",editClusterError:\"Clusters não puderam ser editados.\",editEdge:\"Editar aresta\",editEdgeDescription:\"Clique nos pontos de controle e os arraste para um nó para conectá-los\",editNode:\"Editar nó\"},ru:{addDescription:\"Кликните в свободное место, чтобы добавить новый узел.\",addEdge:\"Добавить ребро\",addNode:\"Добавить узел\",back:\"Назад\",close:\"Закрывать\",createEdgeError:\"Невозможно соединить ребра в кластер.\",del:\"Удалить выбранное\",deleteClusterError:\"Кластеры не могут быть удалены\",edgeDescription:\"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.\",edit:\"Редактировать\",editClusterError:\"Кластеры недоступны для редактирования.\",editEdge:\"Редактировать ребро\",editEdgeDescription:\"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.\",editNode:\"Редактировать узел\"},cn:{addDescription:\"单击空白处放置新节点。\",addEdge:\"添加连接线\",addNode:\"添加节点\",back:\"返回\",close:\"關閉\",createEdgeError:\"无法将连接线连接到群集。\",del:\"删除选定\",deleteClusterError:\"无法删除群集。\",edgeDescription:\"单击某个节点并将该连接线拖动到另一个节点以连接它们。\",edit:\"编辑\",editClusterError:\"无法编辑群集。\",editEdge:\"编辑连接线\",editEdgeDescription:\"单击控制节点并将它们拖到节点上连接。\",editNode:\"编辑节点\"},uk:{addDescription:\"Kлікніть на вільне місце, щоб додати новий вузол.\",addEdge:\"Додати край\",addNode:\"Додати вузол\",back:\"Назад\",close:\"Закрити\",createEdgeError:\"Не можливо об'єднати краї в групу.\",del:\"Видалити обране\",deleteClusterError:\"Групи не можуть бути видалені.\",edgeDescription:\"Клікніть на вузол і перетягніть край до іншого вузла, щоб їх з'єднати.\",edit:\"Редагувати\",editClusterError:\"Групи недоступні для редагування.\",editEdge:\"Редагувати край\",editEdgeDescription:\"Клікніть на контрольні точки і перетягніть їх у вузол, щоб підключитися до нього.\",editNode:\"Редагувати вузол\"},fr:{addDescription:\"Cliquez dans un endroit vide pour placer un nœud.\",addEdge:\"Ajouter un lien\",addNode:\"Ajouter un nœud\",back:\"Retour\",close:\"Fermer\",createEdgeError:\"Impossible de créer un lien vers un cluster.\",del:\"Effacer la sélection\",deleteClusterError:\"Les clusters ne peuvent pas être effacés.\",edgeDescription:\"Cliquez sur un nœud et glissez le lien vers un autre nœud pour les connecter.\",edit:\"Éditer\",editClusterError:\"Les clusters ne peuvent pas être édités.\",editEdge:\"Éditer le lien\",editEdgeDescription:\"Cliquez sur les points de contrôle et glissez-les pour connecter un nœud.\",editNode:\"Éditer le nœud\"},cs:{addDescription:\"Kluknutím do prázdného prostoru můžete přidat nový vrchol.\",addEdge:\"Přidat hranu\",addNode:\"Přidat vrchol\",back:\"Zpět\",close:\"Zavřít\",createEdgeError:\"Nelze připojit hranu ke shluku.\",del:\"Smazat výběr\",deleteClusterError:\"Nelze mazat shluky.\",edgeDescription:\"Přetažením z jednoho vrcholu do druhého můžete spojit tyto vrcholy novou hranou.\",edit:\"Upravit\",editClusterError:\"Nelze upravovat shluky.\",editEdge:\"Upravit hranu\",editEdgeDescription:\"Přetažením kontrolního vrcholu hrany ji můžete připojit k jinému vrcholu.\",editNode:\"Upravit vrchol\"}});var Mb=function(){function t(){Yd(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement(\"canvas\")}return Kd(t,[{key:\"init\",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),n=Math.floor(e/4),o=Math.floor(e/8),r=Math.floor(e/16),s=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),l=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,s,i],[s,0,a,n],[s,n,h,o],[5*h,n,l,r]],this._fillMipMap()}}},{key:\"initialized\",value:function(){return void 0!==this.coordinates}},{key:\"_fillMipMap\",value:function(){var t=this.canvas.getContext(\"2d\"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i<this.NUM_ITERATIONS;i++){var n=this.coordinates[i-1],o=this.coordinates[i];t.drawImage(this.canvas,n[0],n[1],n[2],n[3],o[0],o[1],o[2],o[3])}}},{key:\"drawImageAtPosition\",value:function(t,e,i,n,o,r){if(this.initialized())if(e>2){e*=.5;for(var s=0;e>2&&s<this.NUM_ITERATIONS;)e*=.5,s+=1;s>=this.NUM_ITERATIONS&&(s=this.NUM_ITERATIONS-1);var a=this.coordinates[s];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,n,o,r)}else t.drawImage(this.image,i,n,o,r)}}]),t}(),Pb=function(){function t(e){Yd(this,t),this.images={},this.imageBroken={},this.callback=e}return Kd(t,[{key:\"_tryloadBrokenUrl\",value:function(t,e,i){void 0!==t&&void 0!==i&&(void 0!==e?(i.image.onerror=function(){console.error(\"Could not load brokenImage:\",e)},i.image.src=e):console.warn(\"No broken url image defined\"))}},{key:\"_redrawWithImage\",value:function(t){this.callback&&this.callback(t)}},{key:\"load\",value:function(t,e){var i=this,n=this.images[t];if(n)return n;var o=new Mb;return this.images[t]=o,o.image.onload=function(){i._fixImageCoordinates(o.image),o.init(),i._redrawWithImage(o)},o.image.onerror=function(){console.error(\"Could not load image:\",t),i._tryloadBrokenUrl(t,e,o)},o.image.src=t,o}},{key:\"_fixImageCoordinates\",value:function(t){0===t.width&&(document.body.appendChild(t),t.width=t.offsetWidth,t.height=t.offsetHeight,document.body.removeChild(t))}}]),t}(),Db={exports:{}},Ib=o((function(){if(\"function\"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,\"a\",{value:8})}})),Bb=o,zb=Y,Nb=B,Fb=Ib,Ab=Object.isExtensible,jb=Bb((function(){Ab(1)}))||Fb?function(t){return!!zb(t)&&((!Fb||\"ArrayBuffer\"!=Nb(t))&&(!Ab||Ab(t)))}:Ab,Rb=!o((function(){return Object.isExtensible(Object.preventExtensions({}))})),Lb=_i,Hb=g,Wb=Ri,qb=Y,Vb=Wt,Ub=Ve.f,Yb=rh,Xb=hh,Gb=jb,Kb=Rb,$b=!1,Zb=Xt(\"meta\"),Qb=0,Jb=function(t){Ub(t,Zb,{value:{objectID:\"O\"+Qb++,weakData:{}}})},tw=Db.exports={enable:function(){tw.enable=function(){},$b=!0;var t=Yb.f,e=Hb([].splice),i={};i[Zb]=1,t(i).length&&(Yb.f=function(i){for(var n=t(i),o=0,r=n.length;o<r;o++)if(n[o]===Zb){e(n,o,1);break}return n},Lb({target:\"Object\",stat:!0,forced:!0},{getOwnPropertyNames:Xb.f}))},fastKey:function(t,e){if(!qb(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!Vb(t,Zb)){if(!Gb(t))return\"F\";if(!e)return\"E\";Jb(t)}return t[Zb].objectID},getWeakData:function(t,e){if(!Vb(t,Zb)){if(!Gb(t))return!0;if(!e)return!1;Jb(t)}return t[Zb].weakData},onFreeze:function(t){return Kb&&$b&&Gb(t)&&!Vb(t,Zb)&&Jb(t),t}};Wb[Zb]=!0;var ew=qe,iw=_,nw=$e,ow=bt,rw=qs,sw=Bi,aw=J,hw=ba,lw=ua,dw=As,cw=n.TypeError,uw=function(t,e){this.stopped=t,this.result=e},fw=uw.prototype,pw=function(t,e,i){var n,o,r,s,a,h,l,d=i&&i.that,c=!(!i||!i.AS_ENTRIES),u=!(!i||!i.IS_ITERATOR),f=!(!i||!i.INTERRUPTED),p=ew(e,d),v=function(t){return n&&dw(n,\"normal\",t),new uw(!0,t)},g=function(t){return c?(nw(t),f?p(t[0],t[1],v):p(t[0],t[1])):f?p(t,v):p(t)};if(u)n=t;else{if(!(o=lw(t)))throw cw(ow(t)+\" is not iterable\");if(rw(o)){for(r=0,s=sw(t);s>r;r++)if((a=g(t[r]))&&aw(fw,a))return a;return new uw(!1)}n=hw(t,o)}for(h=n.next;!(l=iw(h,n)).done;){try{a=g(l.value)}catch(t){dw(n,\"throw\",t)}if(\"object\"==typeof a&&a&&aw(fw,a))return a}return new uw(!1)},vw=J,gw=n.TypeError,yw=function(t,e){if(vw(e,t))return t;throw gw(\"Incorrect invocation\")},mw=_i,bw=n,ww=Db.exports,kw=o,_w=di,xw=pw,Ew=yw,Ow=y,Cw=Y,Sw=$r,Tw=Ve.f,Mw=Wh.forEach,Pw=b,Dw=Vo.set,Iw=Vo.getterFor,Bw=function(t,e,i){var n,o=-1!==t.indexOf(\"Map\"),r=-1!==t.indexOf(\"Weak\"),s=o?\"set\":\"add\",a=bw[t],h=a&&a.prototype,l={};if(Pw&&Ow(a)&&(r||h.forEach&&!kw((function(){(new a).entries().next()})))){var d=(n=e((function(e,i){Dw(Ew(e,d),{type:t,collection:new a}),null!=i&&xw(i,e[s],{that:e,AS_ENTRIES:o})}))).prototype,c=Iw(t);Mw([\"add\",\"clear\",\"delete\",\"forEach\",\"get\",\"has\",\"set\",\"keys\",\"values\",\"entries\"],(function(t){var e=\"add\"==t||\"set\"==t;!(t in h)||r&&\"clear\"==t||_w(d,t,(function(i,n){var o=c(this).collection;if(!e&&r&&!Cw(i))return\"get\"==t&&void 0;var s=o[t](0===i?0:i,n);return e?this:s}))})),r||Tw(d,\"size\",{configurable:!0,get:function(){return c(this).collection.size}})}else n=i.getConstructor(e,t,o,s),ww.enable();return Sw(n,t,!1,!0),l[t]=n,mw({global:!0,forced:!0},l),r||i.setStrong(n,t,o),n},zw=Ir,Nw=function(t,e,i){for(var n in e)i&&i.unsafe&&t[n]?t[n]=e[n]:zw(t,n,e[n],i);return t},Fw=Q,Aw=Ve,jw=b,Rw=oe(\"species\"),Lw=Ve.f,Hw=wr,Ww=Nw,qw=qe,Vw=yw,Uw=pw,Yw=Cs,Xw=function(t){var e=Fw(t),i=Aw.f;jw&&e&&!e[Rw]&&i(e,Rw,{configurable:!0,get:function(){return this}})},Gw=b,Kw=Db.exports.fastKey,$w=Vo.set,Zw=Vo.getterFor,Qw={getConstructor:function(t,e,i,n){var o=t((function(t,o){Vw(t,r),$w(t,{type:e,index:Hw(null),first:void 0,last:void 0,size:0}),Gw||(t.size=0),null!=o&&Uw(o,t[n],{that:t,AS_ENTRIES:i})})),r=o.prototype,s=Zw(e),a=function(t,e,i){var n,o,r=s(t),a=h(t,e);return a?a.value=i:(r.last=a={index:o=Kw(e,!0),key:e,value:i,previous:n=r.last,next:void 0,removed:!1},r.first||(r.first=a),n&&(n.next=a),Gw?r.size++:t.size++,\"F\"!==o&&(r.index[o]=a)),t},h=function(t,e){var i,n=s(t),o=Kw(e);if(\"F\"!==o)return n.index[o];for(i=n.first;i;i=i.next)if(i.key==e)return i};return Ww(r,{clear:function(){for(var t=s(this),e=t.index,i=t.first;i;)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete e[i.index],i=i.next;t.first=t.last=void 0,Gw?t.size=0:this.size=0},delete:function(t){var e=this,i=s(e),n=h(e,t);if(n){var o=n.next,r=n.previous;delete i.index[n.index],n.removed=!0,r&&(r.next=o),o&&(o.previous=r),i.first==n&&(i.first=o),i.last==n&&(i.last=r),Gw?i.size--:e.size--}return!!n},forEach:function(t){for(var e,i=s(this),n=qw(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:i.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!h(this,t)}}),Ww(r,i?{get:function(t){var e=h(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),Gw&&Lw(r,\"size\",{get:function(){return s(this).size}}),o},setStrong:function(t,e,i){var n=e+\" Iterator\",o=Zw(e),r=Zw(n);Yw(t,e,(function(t,e){$w(this,{type:n,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=r(this),e=t.kind,i=t.last;i&&i.removed;)i=i.previous;return t.target&&(t.last=i=i?i.next:t.state.first)?\"keys\"==e?{value:i.key,done:!1}:\"values\"==e?{value:i.value,done:!1}:{value:[i.key,i.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),i?\"entries\":\"values\",!i,!0),Xw(e)}};Bw(\"Map\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Qw);var Jw=X.Map,tk=function(){function t(){Yd(this,t),this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},{border:\"#FFA500\",background:\"#FFFF00\",highlight:{border:\"#FFA500\",background:\"#FFFFA3\"},hover:{border:\"#FFA500\",background:\"#FFFFA3\"}},{border:\"#FA0A10\",background:\"#FB7E81\",highlight:{border:\"#FA0A10\",background:\"#FFAFB1\"},hover:{border:\"#FA0A10\",background:\"#FFAFB1\"}},{border:\"#41A906\",background:\"#7BE141\",highlight:{border:\"#41A906\",background:\"#A1EC76\"},hover:{border:\"#41A906\",background:\"#A1EC76\"}},{border:\"#E129F0\",background:\"#EB7DF4\",highlight:{border:\"#E129F0\",background:\"#F0B3F5\"},hover:{border:\"#E129F0\",background:\"#F0B3F5\"}},{border:\"#7C29F0\",background:\"#AD85E4\",highlight:{border:\"#7C29F0\",background:\"#D3BDF0\"},hover:{border:\"#7C29F0\",background:\"#D3BDF0\"}},{border:\"#C37F00\",background:\"#FFA807\",highlight:{border:\"#C37F00\",background:\"#FFCA66\"},hover:{border:\"#C37F00\",background:\"#FFCA66\"}},{border:\"#4220FB\",background:\"#6E6EFD\",highlight:{border:\"#4220FB\",background:\"#9B9BFD\"},hover:{border:\"#4220FB\",background:\"#9B9BFD\"}},{border:\"#FD5A77\",background:\"#FFC0CB\",highlight:{border:\"#FD5A77\",background:\"#FFD1D9\"},hover:{border:\"#FD5A77\",background:\"#FFD1D9\"}},{border:\"#4AD63A\",background:\"#C2FABC\",highlight:{border:\"#4AD63A\",background:\"#E6FFE3\"},hover:{border:\"#4AD63A\",background:\"#E6FFE3\"}},{border:\"#990000\",background:\"#EE0000\",highlight:{border:\"#BB0000\",background:\"#FF3333\"},hover:{border:\"#BB0000\",background:\"#FF3333\"}},{border:\"#FF6000\",background:\"#FF6000\",highlight:{border:\"#FF6000\",background:\"#FF6000\"},hover:{border:\"#FF6000\",background:\"#FF6000\"}},{border:\"#97C2FC\",background:\"#2B7CE9\",highlight:{border:\"#D2E5FF\",background:\"#2B7CE9\"},hover:{border:\"#D2E5FF\",background:\"#2B7CE9\"}},{border:\"#399605\",background:\"#255C03\",highlight:{border:\"#399605\",background:\"#255C03\"},hover:{border:\"#399605\",background:\"#255C03\"}},{border:\"#B70054\",background:\"#FF007E\",highlight:{border:\"#B70054\",background:\"#FF007E\"},hover:{border:\"#B70054\",background:\"#FF007E\"}},{border:\"#AD85E4\",background:\"#7C29F0\",highlight:{border:\"#D3BDF0\",background:\"#7C29F0\"},hover:{border:\"#D3BDF0\",background:\"#7C29F0\"}},{border:\"#4557FA\",background:\"#000EA1\",highlight:{border:\"#6E6EFD\",background:\"#000EA1\"},hover:{border:\"#6E6EFD\",background:\"#000EA1\"}},{border:\"#FFC0CB\",background:\"#FD5A77\",highlight:{border:\"#FFD1D9\",background:\"#FD5A77\"},hover:{border:\"#FFD1D9\",background:\"#FD5A77\"}},{border:\"#C2FABC\",background:\"#74D66A\",highlight:{border:\"#E6FFE3\",background:\"#74D66A\"},hover:{border:\"#E6FFE3\",background:\"#74D66A\"}},{border:\"#EE0000\",background:\"#990000\",highlight:{border:\"#FF3333\",background:\"#BB0000\"},hover:{border:\"#FF3333\",background:\"#BB0000\"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},un(this.options,this.defaultOptions)}return Kd(t,[{key:\"setOptions\",value:function(t){var e=[\"useDefaultGroups\"];if(void 0!==t)for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&-1===Fp(e).call(e,i)){var n=t[i];this.add(i,n)}}},{key:\"clear\",value:function(){this._groups=new Jw,this._groupNames=[]}},{key:\"get\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._groups.get(t);if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this._groupNames.length>0){var n=this._groupIndex%this._groupNames.length;++this._groupIndex,(i={}).color=this._groups.get(this._groupNames[n]),this._groups.set(t,i)}else{var o=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,(i={}).color=this._defaultGroups[o],this._groups.set(t,i)}return i}},{key:\"add\",value:function(t,e){return this._groups.has(t)||this._groupNames.push(t),this._groups.set(t,e),e}}]),t}();_i({target:\"Number\",stat:!0},{isNaN:function(t){return t!=t}});var ek=X.Number.isNaN,ik=n.isFinite,nk=Number.isFinite||function(t){return\"number\"==typeof t&&ik(t)};_i({target:\"Number\",stat:!0},{isFinite:nk});var ok=X.Number.isFinite,rk=Wh.some;_i({target:\"Array\",proto:!0,forced:!Cu(\"some\")},{some:function(t){return rk(this,t,arguments.length>1?arguments[1]:void 0)}});var sk=Tn(\"Array\").some,ak=J,hk=sk,lk=Array.prototype,dk=function(t){var e=t.some;return t===lk||ak(lk,t)&&e===lk.some?hk:e},ck=dk,uk=na,fk=bt,pk=n.TypeError,vk=_i,gk=d,yk=On,mk=function(t){if(uk(t))return t;throw pk(fk(t)+\" is not a constructor\")},bk=$e,wk=Y,kk=wr,_k=o,xk=Q(\"Reflect\",\"construct\"),Ek=Object.prototype,Ok=[].push,Ck=_k((function(){function t(){}return!(xk((function(){}),[],t)instanceof t)})),Sk=!_k((function(){xk((function(){}))})),Tk=Ck||Sk;vk({target:\"Reflect\",stat:!0,forced:Tk,sham:Tk},{construct:function(t,e){mk(t),bk(e);var i=arguments.length<3?t:mk(arguments[2]);if(Sk&&!Ck)return xk(t,e,i);if(t==i){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return gk(Ok,n,e),new(gk(yk,t,n))}var o=i.prototype,r=kk(wk(o)?o:Ek),s=gk(t,r,e);return wk(s)?s:r}});var Mk=X.Reflect.construct;function Pk(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}var Dk=Gp;_i({target:\"Object\",stat:!0},{setPrototypeOf:cs});var Ik=X.Object.setPrototypeOf;function Bk(t,e){return Bk=Ik||function(t,e){return t.__proto__=e,t},Bk(t,e)}function zk(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Dk(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Xd(t,\"prototype\",{writable:!1}),e&&Bk(t,e)}function Nk(t,e){if(e&&(\"object\"===Qc(e)||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return Pk(t)}var Fk=Rf;function Ak(t){return Ak=Ik?Fk:function(t){return t.__proto__||Fk(t)},Ak(t)}var jk={exports:{}};!function(t){var e=function(t){var e,i=Object.prototype,n=i.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},r=o.iterator||\"@@iterator\",s=o.asyncIterator||\"@@asyncIterator\",a=o.toStringTag||\"@@toStringTag\";function h(t,e,i){return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{h({},\"\")}catch(t){h=function(t,e,i){return t[e]=i}}function l(t,e,i,n){var o=e&&e.prototype instanceof g?e:g,r=Object.create(o.prototype),s=new T(n||[]);return r._invoke=function(t,e,i){var n=c;return function(o,r){if(n===f)throw new Error(\"Generator is already running\");if(n===p){if(\"throw\"===o)throw r;return P()}for(i.method=o,i.arg=r;;){var s=i.delegate;if(s){var a=O(s,i);if(a){if(a===v)continue;return a}}if(\"next\"===i.method)i.sent=i._sent=i.arg;else if(\"throw\"===i.method){if(n===c)throw n=p,i.arg;i.dispatchException(i.arg)}else\"return\"===i.method&&i.abrupt(\"return\",i.arg);n=f;var h=d(t,e,i);if(\"normal\"===h.type){if(n=i.done?p:u,h.arg===v)continue;return{value:h.arg,done:i.done}}\"throw\"===h.type&&(n=p,i.method=\"throw\",i.arg=h.arg)}}}(t,i,s),r}function d(t,e,i){try{return{type:\"normal\",arg:t.call(e,i)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=l;var c=\"suspendedStart\",u=\"suspendedYield\",f=\"executing\",p=\"completed\",v={};function g(){}function y(){}function m(){}var b={};h(b,r,(function(){return this}));var w=Object.getPrototypeOf,k=w&&w(w(M([])));k&&k!==i&&n.call(k,r)&&(b=k);var _=m.prototype=g.prototype=Object.create(b);function x(t){[\"next\",\"throw\",\"return\"].forEach((function(e){h(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function i(o,r,s,a){var h=d(t[o],t,r);if(\"throw\"!==h.type){var l=h.arg,c=l.value;return c&&\"object\"==typeof c&&n.call(c,\"__await\")?e.resolve(c.__await).then((function(t){i(\"next\",t,s,a)}),(function(t){i(\"throw\",t,s,a)})):e.resolve(c).then((function(t){l.value=t,s(l)}),(function(t){return i(\"throw\",t,s,a)}))}a(h.arg)}var o;this._invoke=function(t,n){function r(){return new e((function(e,o){i(t,n,e,o)}))}return o=o?o.then(r,r):r()}}function O(t,i){var n=t.iterator[i.method];if(n===e){if(i.delegate=null,\"throw\"===i.method){if(t.iterator.return&&(i.method=\"return\",i.arg=e,O(t,i),\"throw\"===i.method))return v;i.method=\"throw\",i.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return v}var o=d(n,t.iterator,i.arg);if(\"throw\"===o.type)return i.method=\"throw\",i.arg=o.arg,i.delegate=null,v;var r=o.arg;return r?r.done?(i[t.resultName]=r.value,i.next=t.nextLoc,\"return\"!==i.method&&(i.method=\"next\",i.arg=e),i.delegate=null,v):r:(i.method=\"throw\",i.arg=new TypeError(\"iterator result is not an object\"),i.delegate=null,v)}function C(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(C,this),this.reset(!0)}function M(t){if(t){var i=t[r];if(i)return i.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function i(){for(;++o<t.length;)if(n.call(t,o))return i.value=t[o],i.done=!1,i;return i.value=e,i.done=!0,i};return s.next=s}}return{next:P}}function P(){return{value:e,done:!0}}return y.prototype=m,h(_,\"constructor\",m),h(m,\"constructor\",y),y.displayName=h(m,a,\"GeneratorFunction\"),t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===y||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,m):(t.__proto__=m,h(t,a,\"GeneratorFunction\")),t.prototype=Object.create(_),t},t.awrap=function(t){return{__await:t}},x(E.prototype),h(E.prototype,s,(function(){return this})),t.AsyncIterator=E,t.async=function(e,i,n,o,r){void 0===r&&(r=Promise);var s=new E(l(e,i,n,o),r);return t.isGeneratorFunction(i)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},x(_),h(_,a,\"Generator\"),h(_,r,(function(){return this})),h(_,\"toString\",(function(){return\"[object Generator]\"})),t.keys=function(t){var e=[];for(var i in t)e.push(i);return e.reverse(),function i(){for(;e.length;){var n=e.pop();if(n in t)return i.value=n,i.done=!1,i}return i.done=!0,i}},t.values=M,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=e,this.tryEntries.forEach(S),!t)for(var i in this)\"t\"===i.charAt(0)&&n.call(this,i)&&!isNaN(+i.slice(1))&&(this[i]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var i=this;function o(n,o){return a.type=\"throw\",a.arg=t,i.next=n,o&&(i.method=\"next\",i.arg=e),!!o}for(var r=this.tryEntries.length-1;r>=0;--r){var s=this.tryEntries[r],a=s.completion;if(\"root\"===s.tryLoc)return o(\"end\");if(s.tryLoc<=this.prev){var h=n.call(s,\"catchLoc\"),l=n.call(s,\"finallyLoc\");if(h&&l){if(this.prev<s.catchLoc)return o(s.catchLoc,!0);if(this.prev<s.finallyLoc)return o(s.finallyLoc)}else if(h){if(this.prev<s.catchLoc)return o(s.catchLoc,!0)}else{if(!l)throw new Error(\"try statement without catch or finally\");if(this.prev<s.finallyLoc)return o(s.finallyLoc)}}}},abrupt:function(t,e){for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var r=o;break}}r&&(\"break\"===t||\"continue\"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var s=r?r.completion:{};return s.type=t,s.arg=e,r?(this.method=\"next\",this.next=r.finallyLoc,v):this.complete(s)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),S(i),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if(\"throw\"===n.type){var o=n.arg;S(i)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,i,n){return this.delegate={iterator:M(t),resultName:i,nextLoc:n},\"next\"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=e}catch(t){\"object\"==typeof globalThis?globalThis.regeneratorRuntime=e:Function(\"r\",\"regeneratorRuntime = r\")(e)}}(jk);var Rk=jk.exports,Lk=xt,Hk=Rt,Wk=R,qk=Bi,Vk=n.TypeError,Uk=function(t){return function(e,i,n,o){Lk(i);var r=Hk(e),s=Wk(r),a=qk(r),h=t?a-1:0,l=t?-1:1;if(n<2)for(;;){if(h in s){o=s[h],h+=l;break}if(h+=l,t?h<0:a<=h)throw Vk(\"Reduce of empty array with no initial value\")}for(;t?h>=0:a>h;h+=l)h in s&&(o=i(o,s[h],h,r));return o}},Yk={left:Uk(!1),right:Uk(!0)},Xk=\"process\"==B(n.process),Gk=Yk.left,Kk=at,$k=Xk;_i({target:\"Array\",proto:!0,forced:!Cu(\"reduce\")||!$k&&Kk>79&&Kk<83},{reduce:function(t){var e=arguments.length;return Gk(this,t,e,e>1?arguments[1]:void 0)}});var Zk=Tn(\"Array\").reduce,Qk=J,Jk=Zk,t_=Array.prototype,e_=function(t){var e=t.reduce;return t===t_||Qk(t_,t)&&e===t_.reduce?Jk:e},i_=e_,n_=oh,o_=Bi,r_=qe,s_=n.TypeError,a_=function(t,e,i,n,o,r,s,a){for(var h,l,d=o,c=0,u=!!s&&r_(s,a);c<n;){if(c in i){if(h=u?u(i[c],c,e):i[c],r>0&&n_(h))l=o_(h),d=a_(t,e,h,l,d,r-1)-1;else{if(d>=9007199254740991)throw s_(\"Exceed the acceptable array length\");t[d]=h}d++}c++}return d},h_=a_,l_=xt,d_=Rt,c_=Bi,u_=zh;_i({target:\"Array\",proto:!0},{flatMap:function(t){var e,i=d_(this),n=c_(i);return l_(t),(e=u_(i,0)).length=h_(e,i,i,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}});var f_=Tn(\"Array\").flatMap,p_=J,v_=f_,g_=Array.prototype,y_=function(t){var e=t.flatMap;return t===g_||p_(g_,t)&&e===g_.flatMap?v_:e},m_=y_;Bw(\"Set\",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Qw);var b_=X.Set,w_=$c,k_=ba,__=ph,x_=Math.floor,E_=function(t,e){var i=t.length,n=x_(i/2);return i<8?O_(t,e):C_(t,E_(__(t,0,n),e),E_(__(t,n),e),e)},O_=function(t,e){for(var i,n,o=t.length,r=1;r<o;){for(n=r,i=t[r];n&&e(t[n-1],i)>0;)t[n]=t[--n];n!==r++&&(t[n]=i)}return t},C_=function(t,e,i,n){for(var o=e.length,r=i.length,s=0,a=0;s<o||a<r;)t[s+a]=s<o&&a<r?n(e[s],i[a])<=0?e[s++]:i[a++]:s<o?e[s++]:i[a++];return t},S_=E_,T_=tt.match(/firefox\\/(\\d+)/i),M_=!!T_&&+T_[1],P_=/MSIE|Trident/.test(tt),D_=tt.match(/AppleWebKit\\/(\\d+)\\./),I_=!!D_&&+D_[1],B_=_i,z_=g,N_=xt,F_=Rt,A_=Bi,j_=eo,R_=o,L_=S_,H_=Cu,W_=M_,q_=P_,V_=at,U_=I_,Y_=[],X_=z_(Y_.sort),G_=z_(Y_.push),K_=R_((function(){Y_.sort(void 0)})),$_=R_((function(){Y_.sort(null)})),Z_=H_(\"sort\"),Q_=!R_((function(){if(V_)return V_<70;if(!(W_&&W_>3)){if(q_)return!0;if(U_)return U_<603;var t,e,i,n,o=\"\";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(n=0;n<47;n++)Y_.push({k:e+n,v:i})}for(Y_.sort((function(t,e){return e.v-t.v})),n=0;n<Y_.length;n++)e=Y_[n].k.charAt(0),o.charAt(o.length-1)!==e&&(o+=e);return\"DGBEFHACIJK\"!==o}}));B_({target:\"Array\",proto:!0,forced:K_||!$_||!Z_||!Q_},{sort:function(t){void 0!==t&&N_(t);var e=F_(this);if(Q_)return void 0===t?X_(e):X_(e,t);var i,n,o=[],r=A_(e);for(n=0;n<r;n++)n in e&&G_(o,e[n]);for(L_(o,function(t){return function(e,i){return void 0===i?-1:void 0===e?1:void 0!==t?+t(e,i)||0:j_(e)>j_(i)?1:-1}}(t)),i=o.length,n=0;n<i;)e[n]=o[n++];for(;n<r;)delete e[n++];return e}});var J_,tx=Tn(\"Array\").sort,ex=J,ix=tx,nx=Array.prototype,ox=function(t){var e=t.sort;return t===nx||ex(nx,t)&&e===nx.sort?ix:e},rx=ox,sx=Tn(\"Array\").keys,ax=Qn,hx=Wt,lx=J,dx=sx,cx=Array.prototype,ux={DOMTokenList:!0,NodeList:!0},fx=function(t){var e=t.keys;return t===cx||lx(cx,t)&&e===cx.keys||hx(ux,ax(t))?dx:e},px=Tn(\"Array\").values,vx=Qn,gx=Wt,yx=J,mx=px,bx=Array.prototype,wx={DOMTokenList:!0,NodeList:!0},kx=function(t){var e=t.values;return t===bx||yx(bx,t)&&e===bx.values||gx(wx,vx(t))?mx:e},_x=Tn(\"Array\").entries,xx=Qn,Ex=Wt,Ox=J,Cx=_x,Sx=Array.prototype,Tx={DOMTokenList:!0,NodeList:!0},Mx=function(t){var e=t.entries;return t===Sx||Ox(Sx,t)&&e===Sx.entries||Ex(Tx,xx(t))?Cx:e},Px=new Uint8Array(16);function Dx(){if(!J_&&!(J_=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return J_(Px)}var Ix=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Bx(t){return\"string\"==typeof t&&Ix.test(t)}for(var zx,Nx=[],Fx=0;Fx<256;++Fx)Nx.push((Fx+256).toString(16).substr(1));function Ax(t,e,i){var n=(t=t||{}).random||(t.rng||Dx)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){i=i||0;for(var o=0;o<16;++o)e[i+o]=n[o];return e}return function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=(Nx[t[e+0]]+Nx[t[e+1]]+Nx[t[e+2]]+Nx[t[e+3]]+\"-\"+Nx[t[e+4]]+Nx[t[e+5]]+\"-\"+Nx[t[e+6]]+Nx[t[e+7]]+\"-\"+Nx[t[e+8]]+Nx[t[e+9]]+\"-\"+Nx[t[e+10]]+Nx[t[e+11]]+Nx[t[e+12]]+Nx[t[e+13]]+Nx[t[e+14]]+Nx[t[e+15]]).toLowerCase();if(!Bx(i))throw TypeError(\"Stringified UUID is invalid\");return i}(n)}function jx(t,e){var i=bu(t);if(hd){var n=hd(t);e&&(n=Xf(n).call(n,(function(e){return bd(t,e).enumerable}))),i.push.apply(i,n)}return i}function Rx(t){for(var e=1;e<arguments.length;e++){var i,n,o=null!=arguments[e]?arguments[e]:{};e%2?Fu(i=jx(Object(o),!0)).call(i,(function(e){$d(t,e,o[e])})):Pd?Ad(t,Pd(o)):Fu(n=jx(Object(o))).call(n,(function(e){Ud(t,e,bd(o,e))}))}return t}function Lx(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}function Hx(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return Wx(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Wx(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function Wx(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var qx=function(){function t(e,i,n){var o,r,s;Yd(this,t),$d(this,\"_source\",void 0),$d(this,\"_transformers\",void 0),$d(this,\"_target\",void 0),$d(this,\"_listeners\",{add:zn(o=this._add).call(o,this),remove:zn(r=this._remove).call(r,this),update:zn(s=this._update).call(s,this)}),this._source=e,this._transformers=i,this._target=n}return Kd(t,[{key:\"all\",value:function(){return this._target.update(this._transformItems(this._source.get())),this}},{key:\"start\",value:function(){return this._source.on(\"add\",this._listeners.add),this._source.on(\"remove\",this._listeners.remove),this._source.on(\"update\",this._listeners.update),this}},{key:\"stop\",value:function(){return this._source.off(\"add\",this._listeners.add),this._source.off(\"remove\",this._listeners.remove),this._source.off(\"update\",this._listeners.update),this}},{key:\"_transformItems\",value:function(t){var e;return i_(e=this._transformers).call(e,(function(t,e){return e(t)}),t)}},{key:\"_add\",value:function(t,e){null!=e&&this._target.add(this._transformItems(this._source.get(e.items)))}},{key:\"_update\",value:function(t,e){null!=e&&this._target.update(this._transformItems(this._source.get(e.items)))}},{key:\"_remove\",value:function(t,e){null!=e&&this._target.remove(this._transformItems(e.oldData))}}]),t}(),Vx=function(){function t(e){Yd(this,t),$d(this,\"_source\",void 0),$d(this,\"_transformers\",[]),this._source=e}return Kd(t,[{key:\"filter\",value:function(t){return this._transformers.push((function(e){return Xf(e).call(e,t)})),this}},{key:\"map\",value:function(t){return this._transformers.push((function(e){return gu(e).call(e,t)})),this}},{key:\"flatMap\",value:function(t){return this._transformers.push((function(e){return m_(e).call(e,t)})),this}},{key:\"to\",value:function(t){return new qx(this._source,this._transformers,t)}}]),t}();function Ux(t){return\"string\"==typeof t||\"number\"==typeof t}var Yx=function(){function t(e){Yd(this,t),$d(this,\"delay\",void 0),$d(this,\"max\",void 0),$d(this,\"_queue\",[]),$d(this,\"_timeout\",null),$d(this,\"_extended\",null),this.delay=null,this.max=1/0,this.setOptions(e)}return Kd(t,[{key:\"setOptions\",value:function(t){t&&void 0!==t.delay&&(this.delay=t.delay),t&&void 0!==t.max&&(this.max=t.max),this._flushIfNeeded()}},{key:\"destroy\",value:function(){if(this.flush(),this._extended){for(var t=this._extended.object,e=this._extended.methods,i=0;i<e.length;i++){var n=e[i];n.original?t[n.name]=n.original:delete t[n.name]}this._extended=null}}},{key:\"replace\",value:function(t,e){var i=this,n=t[e];if(!n)throw new Error(\"Method \"+e+\" undefined\");t[e]=function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];i.queue({args:e,fn:n,context:this})}}},{key:\"queue\",value:function(t){\"function\"==typeof t?this._queue.push({fn:t}):this._queue.push(t),this._flushIfNeeded()}},{key:\"_flushIfNeeded\",value:function(){var t=this;this._queue.length>this.max&&this.flush(),null!=this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&\"number\"==typeof this.delay&&(this._timeout=Sv((function(){t.flush()}),this.delay))}},{key:\"flush\",value:function(){var t,e;Fu(t=ff(e=this._queue).call(e,0)).call(t,(function(t){t.fn.apply(t.context||t.fn,t.args||[])}))}}],[{key:\"extend\",value:function(e,i){var n=new t(i);if(void 0!==e.flush)throw new Error(\"Target object already has a property flush\");e.flush=function(){n.flush()};var o=[{name:\"flush\",original:void 0}];if(i&&i.replace)for(var r=0;r<i.replace.length;r++){var s=i.replace[r];o.push({name:s,original:e[s]}),n.replace(e,s)}return n._extended={object:e,methods:o},n}}]),t}(),Xx=function(){function t(){Yd(this,t),$d(this,\"_subscribers\",{\"*\":[],add:[],remove:[],update:[]}),$d(this,\"subscribe\",t.prototype.on),$d(this,\"unsubscribe\",t.prototype.off)}return Kd(t,[{key:\"_trigger\",value:function(t,e,i){var n,o;if(\"*\"===t)throw new Error(\"Cannot trigger event *\");Fu(n=su(o=[]).call(o,Jc(this._subscribers[t]),Jc(this._subscribers[\"*\"]))).call(n,(function(n){n(t,e,null!=i?i:null)}))}},{key:\"on\",value:function(t,e){\"function\"==typeof e&&this._subscribers[t].push(e)}},{key:\"off\",value:function(t,e){var i;this._subscribers[t]=Xf(i=this._subscribers[t]).call(i,(function(t){return t!==e}))}}]),t}();zx=w_;var Gx=function(){function t(e){Yd(this,t),$d(this,\"_pairs\",void 0),this._pairs=e}return Kd(t,[{key:zx,value:Rk.mark((function t(){var e,i,n,o,r;return Rk.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=Hx(this._pairs),t.prev=1,e.s();case 3:if((i=e.n()).done){t.next=9;break}return n=Kc(i.value,2),o=n[0],r=n[1],t.next=7,[o,r];case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case\"end\":return t.stop()}}),t,this,[[1,11,14,17]])}))},{key:\"entries\",value:Rk.mark((function t(){var e,i,n,o,r;return Rk.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=Hx(this._pairs),t.prev=1,e.s();case 3:if((i=e.n()).done){t.next=9;break}return n=Kc(i.value,2),o=n[0],r=n[1],t.next=7,[o,r];case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case\"end\":return t.stop()}}),t,this,[[1,11,14,17]])}))},{key:\"keys\",value:Rk.mark((function t(){var e,i,n,o;return Rk.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=Hx(this._pairs),t.prev=1,e.s();case 3:if((i=e.n()).done){t.next=9;break}return n=Kc(i.value,1),o=n[0],t.next=7,o;case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case\"end\":return t.stop()}}),t,this,[[1,11,14,17]])}))},{key:\"values\",value:Rk.mark((function t(){var e,i,n,o;return Rk.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=Hx(this._pairs),t.prev=1,e.s();case 3:if((i=e.n()).done){t.next=9;break}return n=Kc(i.value,2),o=n[1],t.next=7,o;case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case\"end\":return t.stop()}}),t,this,[[1,11,14,17]])}))},{key:\"toIdArray\",value:function(){var t;return gu(t=Jc(this._pairs)).call(t,(function(t){return t[0]}))}},{key:\"toItemArray\",value:function(){var t;return gu(t=Jc(this._pairs)).call(t,(function(t){return t[1]}))}},{key:\"toEntryArray\",value:function(){return Jc(this._pairs)}},{key:\"toObjectMap\",value:function(){var t,e=Kp(null),i=Hx(this._pairs);try{for(i.s();!(t=i.n()).done;){var n=Kc(t.value,2),o=n[0],r=n[1];e[o]=r}}catch(t){i.e(t)}finally{i.f()}return e}},{key:\"toMap\",value:function(){return new Jw(this._pairs)}},{key:\"toIdSet\",value:function(){return new b_(this.toIdArray())}},{key:\"toItemSet\",value:function(){return new b_(this.toItemArray())}},{key:\"cache\",value:function(){return new t(Jc(this._pairs))}},{key:\"distinct\",value:function(t){var e,i=new b_,n=Hx(this._pairs);try{for(n.s();!(e=n.n()).done;){var o=Kc(e.value,2),r=o[0],s=o[1];i.add(t(s,r))}}catch(t){n.e(t)}finally{n.f()}return i}},{key:\"filter\",value:function(e){var i=this._pairs;return new t($d({},w_,Rk.mark((function t(){var n,o,r,s,a;return Rk.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=Hx(i),t.prev=1,n.s();case 3:if((o=n.n()).done){t.next=10;break}if(r=Kc(o.value,2),s=r[0],a=r[1],!e(a,s)){t.next=8;break}return t.next=8,[s,a];case 8:t.next=3;break;case 10:t.next=15;break;case 12:t.prev=12,t.t0=t.catch(1),n.e(t.t0);case 15:return t.prev=15,n.f(),t.finish(15);case 18:case\"end\":return t.stop()}}),t,null,[[1,12,15,18]])}))))}},{key:\"forEach\",value:function(t){var e,i=Hx(this._pairs);try{for(i.s();!(e=i.n()).done;){var n=Kc(e.value,2),o=n[0];t(n[1],o)}}catch(t){i.e(t)}finally{i.f()}}},{key:\"map\",value:function(e){var i=this._pairs;return new t($d({},w_,Rk.mark((function t(){var n,o,r,s,a;return Rk.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=Hx(i),t.prev=1,n.s();case 3:if((o=n.n()).done){t.next=9;break}return r=Kc(o.value,2),s=r[0],a=r[1],t.next=7,[s,e(a,s)];case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),n.e(t.t0);case 14:return t.prev=14,n.f(),t.finish(14);case 17:case\"end\":return t.stop()}}),t,null,[[1,11,14,17]])}))))}},{key:\"max\",value:function(t){var e=k_(this._pairs),i=e.next();if(i.done)return null;for(var n=i.value[1],o=t(i.value[1],i.value[0]);!(i=e.next()).done;){var r=Kc(i.value,2),s=r[0],a=r[1],h=t(a,s);h>o&&(o=h,n=a)}return n}},{key:\"min\",value:function(t){var e=k_(this._pairs),i=e.next();if(i.done)return null;for(var n=i.value[1],o=t(i.value[1],i.value[0]);!(i=e.next()).done;){var r=Kc(i.value,2),s=r[0],a=r[1],h=t(a,s);h<o&&(o=h,n=a)}return n}},{key:\"reduce\",value:function(t,e){var i,n=Hx(this._pairs);try{for(n.s();!(i=n.n()).done;){var o=Kc(i.value,2),r=o[0];e=t(e,o[1],r)}}catch(t){n.e(t)}finally{n.f()}return e}},{key:\"sort\",value:function(e){var i=this;return new t($d({},w_,(function(){var t;return k_(rx(t=Jc(i._pairs)).call(t,(function(t,i){var n=Kc(t,2),o=n[0],r=n[1],s=Kc(i,2),a=s[0],h=s[1];return e(r,h,o,a)})))})))}}]),t}();var Kx=function(t){zk(i,t);var e=Lx(i);function i(t,n){var o;return Yd(this,i),$d(Pk(o=e.call(this)),\"flush\",void 0),$d(Pk(o),\"length\",void 0),$d(Pk(o),\"_options\",void 0),$d(Pk(o),\"_data\",void 0),$d(Pk(o),\"_idProp\",void 0),$d(Pk(o),\"_queue\",null),t&&!lu(t)&&(n=t,t=[]),o._options=n||{},o._data=new Jw,o.length=0,o._idProp=o._options.fieldId||\"id\",t&&t.length&&o.add(t),o.setOptions(n),o}return Kd(i,[{key:\"idProp\",get:function(){return this._idProp}},{key:\"setOptions\",value:function(t){t&&void 0!==t.queue&&(!1===t.queue?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=Yx.extend(this,{replace:[\"add\",\"update\",\"remove\"]})),t.queue&&\"object\"===Qc(t.queue)&&this._queue.setOptions(t.queue)))}},{key:\"add\",value:function(t,e){var i,n=this,o=[];if(lu(t)){var r=gu(t).call(t,(function(t){return t[n._idProp]}));if(ck(r).call(r,(function(t){return n._data.has(t)})))throw new Error(\"A duplicate id was found in the parameter array.\");for(var s=0,a=t.length;s<a;s++)i=this._addItem(t[s]),o.push(i)}else{if(!t||\"object\"!==Qc(t))throw new Error(\"Unknown dataType\");i=this._addItem(t),o.push(i)}return o.length&&this._trigger(\"add\",{items:o},e),o}},{key:\"update\",value:function(t,e){var i=this,n=[],o=[],r=[],s=[],a=this._idProp,h=function(t){var e=t[a];if(null!=e&&i._data.has(e)){var h=t,l=un({},i._data.get(e)),d=i._updateItem(h);o.push(d),s.push(h),r.push(l)}else{var c=i._addItem(t);n.push(c)}};if(lu(t))for(var l=0,d=t.length;l<d;l++)t[l]&&\"object\"===Qc(t[l])?h(t[l]):console.warn(\"Ignoring input item, which is not an object at index \"+l);else{if(!t||\"object\"!==Qc(t))throw new Error(\"Unknown dataType\");h(t)}if(n.length&&this._trigger(\"add\",{items:n},e),o.length){var c={items:o,oldData:r,data:s};this._trigger(\"update\",c,e)}return su(n).call(n,o)}},{key:\"updateOnly\",value:function(t,e){var i,n=this;lu(t)||(t=[t]);var o=gu(i=gu(t).call(t,(function(t){var e=n._data.get(t[n._idProp]);if(null==e)throw new Error(\"Updating non-existent items is not allowed.\");return{oldData:e,update:t}}))).call(i,(function(t){var e=t.oldData,i=t.update,o=e[n._idProp],r=By(e,i);return n._data.set(o,r),{id:o,oldData:e,updatedData:r}}));if(o.length){var r={items:gu(o).call(o,(function(t){return t.id})),oldData:gu(o).call(o,(function(t){return t.oldData})),data:gu(o).call(o,(function(t){return t.updatedData}))};return this._trigger(\"update\",r,e),r.items}return[]}},{key:\"get\",value:function(t,e){var i=void 0,n=void 0,o=void 0;Ux(t)?(i=t,o=e):lu(t)?(n=t,o=e):o=t;var r,s=o&&\"Object\"===o.returnType?\"Object\":\"Array\",a=o&&Xf(o),h=[],l=void 0,d=void 0,c=void 0;if(null!=i)(l=this._data.get(i))&&a&&!a(l)&&(l=void 0);else if(null!=n)for(var u=0,f=n.length;u<f;u++)null==(l=this._data.get(n[u]))||a&&!a(l)||h.push(l);else for(var p,v=0,g=(d=Jc(fx(p=this._data).call(p))).length;v<g;v++)c=d[v],null==(l=this._data.get(c))||a&&!a(l)||h.push(l);if(o&&o.order&&null==i&&this._sort(h,o.order),o&&o.fields){var y=o.fields;if(null!=i&&null!=l)l=this._filterFields(l,y);else for(var m=0,b=h.length;m<b;m++)h[m]=this._filterFields(h[m],y)}if(\"Object\"==s){for(var w={},k=0,_=h.length;k<_;k++){var x=h[k];w[x[this._idProp]]=x}return w}return null!=i?null!==(r=l)&&void 0!==r?r:null:h}},{key:\"getIds\",value:function(t){var e=this._data,i=t&&Xf(t),n=t&&t.order,o=Jc(fx(e).call(e)),r=[];if(i)if(n){for(var s=[],a=0,h=o.length;a<h;a++){var l=o[a],d=this._data.get(l);null!=d&&i(d)&&s.push(d)}this._sort(s,n);for(var c=0,u=s.length;c<u;c++)r.push(s[c][this._idProp])}else for(var f=0,p=o.length;f<p;f++){var v=o[f],g=this._data.get(v);null!=g&&i(g)&&r.push(g[this._idProp])}else if(n){for(var y=[],m=0,b=o.length;m<b;m++){var w=o[m];y.push(e.get(w))}this._sort(y,n);for(var k=0,_=y.length;k<_;k++)r.push(y[k][this._idProp])}else for(var x=0,E=o.length;x<E;x++){var O=o[x],C=e.get(O);null!=C&&r.push(C[this._idProp])}return r}},{key:\"getDataSet\",value:function(){return this}},{key:\"forEach\",value:function(t,e){var i=e&&Xf(e),n=this._data,o=Jc(fx(n).call(n));if(e&&e.order)for(var r=this.get(e),s=0,a=r.length;s<a;s++){var h=r[s];t(h,h[this._idProp])}else for(var l=0,d=o.length;l<d;l++){var c=o[l],u=this._data.get(c);null==u||i&&!i(u)||t(u,c)}}},{key:\"map\",value:function(t,e){for(var i=e&&Xf(e),n=[],o=this._data,r=Jc(fx(o).call(o)),s=0,a=r.length;s<a;s++){var h=r[s],l=this._data.get(h);null==l||i&&!i(l)||n.push(t(l,h))}return e&&e.order&&this._sort(n,e.order),n}},{key:\"_filterFields\",value:function(t,e){var i;return t?i_(i=lu(e)?e:bu(e)).call(i,(function(e,i){return e[i]=t[i],e}),{}):t}},{key:\"_sort\",value:function(t,e){if(\"string\"==typeof e){var i=e;rx(t).call(t,(function(t,e){var n=t[i],o=e[i];return n>o?1:n<o?-1:0}))}else{if(\"function\"!=typeof e)throw new TypeError(\"Order must be a function or a string\");rx(t).call(t,e)}}},{key:\"remove\",value:function(t,e){for(var i=[],n=[],o=lu(t)?t:[t],r=0,s=o.length;r<s;r++){var a=this._remove(o[r]);if(a){var h=a[this._idProp];null!=h&&(i.push(h),n.push(a))}}return i.length&&this._trigger(\"remove\",{items:i,oldData:n},e),i}},{key:\"_remove\",value:function(t){var e;if(Ux(t)?e=t:t&&\"object\"===Qc(t)&&(e=t[this._idProp]),null!=e&&this._data.has(e)){var i=this._data.get(e)||null;return this._data.delete(e),--this.length,i}return null}},{key:\"clear\",value:function(t){for(var e,i=Jc(fx(e=this._data).call(e)),n=[],o=0,r=i.length;o<r;o++)n.push(this._data.get(i[o]));return this._data.clear(),this.length=0,this._trigger(\"remove\",{items:i,oldData:n},t),i}},{key:\"max\",value:function(t){var e,i,n=null,o=null,r=Hx(kx(e=this._data).call(e));try{for(r.s();!(i=r.n()).done;){var s=i.value,a=s[t];\"number\"==typeof a&&(null==o||a>o)&&(n=s,o=a)}}catch(t){r.e(t)}finally{r.f()}return n||null}},{key:\"min\",value:function(t){var e,i,n=null,o=null,r=Hx(kx(e=this._data).call(e));try{for(r.s();!(i=r.n()).done;){var s=i.value,a=s[t];\"number\"==typeof a&&(null==o||a<o)&&(n=s,o=a)}}catch(t){r.e(t)}finally{r.f()}return n||null}},{key:\"distinct\",value:function(t){for(var e=this._data,i=Jc(fx(e).call(e)),n=[],o=0,r=0,s=i.length;r<s;r++){for(var a=i[r],h=e.get(a)[t],l=!1,d=0;d<o;d++)if(n[d]==h){l=!0;break}l||void 0===h||(n[o]=h,o++)}return n}},{key:\"_addItem\",value:function(t){var e=function(t,e){return null==t[e]&&(t[e]=Ax()),t}(t,this._idProp),i=e[this._idProp];if(this._data.has(i))throw new Error(\"Cannot add item: item with id \"+i+\" already exists\");return this._data.set(i,e),++this.length,i}},{key:\"_updateItem\",value:function(t){var e=t[this._idProp];if(null==e)throw new Error(\"Cannot update item: item has no id (item: \"+gv(t)+\")\");var i=this._data.get(e);if(!i)throw new Error(\"Cannot update item: no item with id \"+e+\" found\");return this._data.set(e,Rx(Rx({},i),t)),e}},{key:\"stream\",value:function(t){if(t){var e=this._data;return new Gx($d({},w_,Rk.mark((function i(){var n,o,r,s;return Rk.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:n=Hx(t),i.prev=1,n.s();case 3:if((o=n.n()).done){i.next=11;break}if(r=o.value,null==(s=e.get(r))){i.next=9;break}return i.next=9,[r,s];case 9:i.next=3;break;case 11:i.next=16;break;case 13:i.prev=13,i.t0=i.catch(1),n.e(i.t0);case 16:return i.prev=16,n.f(),i.finish(16);case 19:case\"end\":return i.stop()}}),i,null,[[1,13,16,19]])}))))}var i;return new Gx($d({},w_,zn(i=Mx(this._data)).call(i,this._data)))}}]),i}(Xx),$x=function(t){zk(i,t);var e=Lx(i);function i(t,n){var o,r;return Yd(this,i),$d(Pk(r=e.call(this)),\"length\",0),$d(Pk(r),\"_listener\",void 0),$d(Pk(r),\"_data\",void 0),$d(Pk(r),\"_ids\",new b_),$d(Pk(r),\"_options\",void 0),r._options=n||{},r._listener=zn(o=r._onEvent).call(o,Pk(r)),r.setData(t),r}return Kd(i,[{key:\"idProp\",get:function(){return this.getDataSet().idProp}},{key:\"setData\",value:function(t){if(this._data){this._data.off&&this._data.off(\"*\",this._listener);var e=this._data.getIds({filter:Xf(this._options)}),i=this._data.get(e);this._ids.clear(),this.length=0,this._trigger(\"remove\",{items:e,oldData:i})}if(null!=t){this._data=t;for(var n=this._data.getIds({filter:Xf(this._options)}),o=0,r=n.length;o<r;o++){var s=n[o];this._ids.add(s)}this.length=n.length,this._trigger(\"add\",{items:n})}else this._data=new Kx;this._data.on&&this._data.on(\"*\",this._listener)}},{key:\"refresh\",value:function(){for(var t=this._data.getIds({filter:Xf(this._options)}),e=Jc(this._ids),i={},n=[],o=[],r=[],s=0,a=t.length;s<a;s++){var h=t[s];i[h]=!0,this._ids.has(h)||(n.push(h),this._ids.add(h))}for(var l=0,d=e.length;l<d;l++){var c=e[l],u=this._data.get(c);null==u?console.error(\"If you see this, report it please.\"):i[c]||(o.push(c),r.push(u),this._ids.delete(c))}this.length+=n.length-o.length,n.length&&this._trigger(\"add\",{items:n}),o.length&&this._trigger(\"remove\",{items:o,oldData:r})}},{key:\"get\",value:function(t,e){if(null==this._data)return null;var i,n=null;Ux(t)||lu(t)?(n=t,i=e):i=t;var o=un({},this._options,i),r=Xf(this._options),s=i&&Xf(i);return r&&s&&(o.filter=function(t){return r(t)&&s(t)}),null==n?this._data.get(o):this._data.get(n,o)}},{key:\"getIds\",value:function(t){if(this._data.length){var e,i=Xf(this._options),n=null!=t?Xf(t):null;return e=n?i?function(t){return i(t)&&n(t)}:n:i,this._data.getIds({filter:e,order:t&&t.order})}return[]}},{key:\"forEach\",value:function(t,e){if(this._data){var i,n,o=Xf(this._options),r=e&&Xf(e);n=r?o?function(t){return o(t)&&r(t)}:r:o,Fu(i=this._data).call(i,t,{filter:n,order:e&&e.order})}}},{key:\"map\",value:function(t,e){if(this._data){var i,n,o=Xf(this._options),r=e&&Xf(e);return n=r?o?function(t){return o(t)&&r(t)}:r:o,gu(i=this._data).call(i,t,{filter:n,order:e&&e.order})}return[]}},{key:\"getDataSet\",value:function(){return this._data.getDataSet()}},{key:\"stream\",value:function(t){var e;return this._data.stream(t||$d({},w_,zn(e=fx(this._ids)).call(e,this._ids)))}},{key:\"dispose\",value:function(){var t;null!==(t=this._data)&&void 0!==t&&t.off&&this._data.off(\"*\",this._listener);var e,n=\"This data view has already been disposed of.\",o={get:function(){throw new Error(n)},set:function(){throw new Error(n)},configurable:!1},r=Hx(hu(i.prototype));try{for(r.s();!(e=r.n()).done;){var s=e.value;Ud(this,s,o)}}catch(t){r.e(t)}finally{r.f()}}},{key:\"_onEvent\",value:function(t,e,i){if(e&&e.items&&this._data){var n=e.items,o=[],r=[],s=[],a=[],h=[],l=[];switch(t){case\"add\":for(var d=0,c=n.length;d<c;d++){var u=n[d];this.get(u)&&(this._ids.add(u),o.push(u))}break;case\"update\":for(var f=0,p=n.length;f<p;f++){var v=n[f];this.get(v)?this._ids.has(v)?(r.push(v),h.push(e.data[f]),a.push(e.oldData[f])):(this._ids.add(v),o.push(v)):this._ids.has(v)&&(this._ids.delete(v),s.push(v),l.push(e.oldData[f]))}break;case\"remove\":for(var g=0,y=n.length;g<y;g++){var m=n[g];this._ids.has(m)&&(this._ids.delete(m),s.push(m),l.push(e.oldData[g]))}}this.length+=o.length-s.length,o.length&&this._trigger(\"add\",{items:o},i),r.length&&this._trigger(\"update\",{items:r,oldData:a,data:h},i),s.length&&this._trigger(\"remove\",{items:s,oldData:l},i)}}}]),i}(Xx);function Zx(t,e){return\"object\"===Qc(e)&&null!==e&&t===e.idProp&&\"function\"==typeof e.add&&\"function\"==typeof e.clear&&\"function\"==typeof e.distinct&&\"function\"==typeof Fu(e)&&\"function\"==typeof e.get&&\"function\"==typeof e.getDataSet&&\"function\"==typeof e.getIds&&\"number\"==typeof e.length&&\"function\"==typeof gu(e)&&\"function\"==typeof e.max&&\"function\"==typeof e.min&&\"function\"==typeof e.off&&\"function\"==typeof e.on&&\"function\"==typeof e.remove&&\"function\"==typeof e.setOptions&&\"function\"==typeof e.stream&&\"function\"==typeof e.update&&\"function\"==typeof e.updateOnly}function Qx(t,e){return\"object\"===Qc(e)&&null!==e&&t===e.idProp&&\"function\"==typeof Fu(e)&&\"function\"==typeof e.get&&\"function\"==typeof e.getDataSet&&\"function\"==typeof e.getIds&&\"number\"==typeof e.length&&\"function\"==typeof gu(e)&&\"function\"==typeof e.off&&\"function\"==typeof e.on&&\"function\"==typeof e.stream&&Zx(t,e.getDataSet())}var Jx=Object.freeze({__proto__:null,DELETE:Iy,DataSet:Kx,DataStream:Gx,DataView:$x,Queue:Yx,createNewDataPipeFrom:function(t){return new Vx(t)},isDataSetLike:Zx,isDataViewLike:Qx}),tE=n,eE=o,iE=eo,nE=cp.trim,oE=g(\"\".charAt),rE=tE.parseFloat,sE=tE.Symbol,aE=sE&&sE.iterator,hE=1/rE(\"\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff-0\")!=-1/0||aE&&!eE((function(){rE(Object(aE))}))?function(t){var e=nE(iE(t)),i=rE(e);return 0===i&&\"-\"==oE(e,0)?-0:i}:rE;_i({global:!0,forced:parseFloat!=hE},{parseFloat:hE});var lE=X.parseFloat,dE=_i,cE=o,uE=hh.f;dE({target:\"Object\",stat:!0,forced:cE((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:uE});var fE=X.Object,pE=function(t){return fE.getOwnPropertyNames(t)},vE=pE;function gE(t,e){var i=[\"node\",\"edge\",\"label\"],n=!0,o=Mm(e,\"chosen\");if(\"boolean\"==typeof o)n=o;else if(\"object\"===Qc(o)){if(-1===Fp(i).call(i,t))throw new Error(\"choosify: subOption '\"+t+\"' should be one of '\"+i.join(\"', '\")+\"'\");var r=Mm(e,[\"chosen\",t]);\"boolean\"!=typeof r&&\"function\"!=typeof r||(n=r)}return n}function yE(t,e,i){if(t.width<=0||t.height<=0)return!1;if(void 0!==i){var n={x:e.x-i.x,y:e.y-i.y};if(0!==i.angle){var o=-i.angle;e={x:Math.cos(o)*n.x-Math.sin(o)*n.y,y:Math.sin(o)*n.x+Math.cos(o)*n.y}}else e=n}var r=t.x+t.width,s=t.y+t.width;return t.left<e.x&&r>e.x&&t.top<e.y&&s>e.y}function mE(t){return\"string\"==typeof t&&\"\"!==t}function bE(t,e,i,n){var o=n.x,r=n.y;if(\"function\"==typeof n.distanceToBorder){var s=n.distanceToBorder(t,e),a=Math.sin(e)*s,h=Math.cos(e)*s;h===s?(o+=s,r=n.y):a===s?(o=n.x,r-=s):(o+=h,r-=a)}else n.shape.width>n.shape.height?(o=n.x+.5*n.shape.width,r=n.y-i):(o=n.x+i,r=n.y-.5*n.shape.height);return{x:o,y:r}}var wE=function(){function t(e){Yd(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return Kd(t,[{key:\"_add\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"normal\";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var n=e;void 0!==e&&\"\"!==e||(n=\" \");var o=this.measureText(n,i),r=un({},kx(o));r.text=e,r.width=o.width,r.mod=i,void 0!==e&&\"\"!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:\"curWidth\",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:\"append\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"normal\";this._add(this.current,t,e)}},{key:\"newLine\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"normal\";this._add(this.current,t,e),this.current++}},{key:\"determineLineHeights\",value:function(){for(var t=0;t<this.lines.length;t++){var e=this.lines[t],i=0;if(void 0!==e.blocks)for(var n=0;n<e.blocks.length;n++){var o=e.blocks[n];i<o.height&&(i=o.height)}e.height=i}}},{key:\"determineLabelSize\",value:function(){for(var t=0,e=0,i=0;i<this.lines.length;i++){var n=this.lines[i];n.width>t&&(t=n.width),e+=n.height}this.width=t,this.height=e}},{key:\"removeEmptyBlocks\",value:function(){for(var t=[],e=0;e<this.lines.length;e++){var i=this.lines[e];if(0!==i.blocks.length&&(e!==this.lines.length-1||0!==i.width)){var n={};un(n,i),n.blocks=[];for(var o=void 0,r=[],s=0;s<i.blocks.length;s++){var a=i.blocks[s];0!==a.width?r.push(a):void 0===o&&(o=a)}0===r.length&&void 0!==o&&r.push(o),n.blocks=r,t.push(n)}}return t}},{key:\"finalize\",value:function(){this.determineLineHeights(),this.determineLabelSize();var t=this.removeEmptyBlocks();return{width:this.width,height:this.height,lines:t}}}]),t}(),kE={\"<b>\":/<b>/,\"<i>\":/<i>/,\"<code>\":/<code>/,\"</b>\":/<\\/b>/,\"</i>\":/<\\/i>/,\"</code>\":/<\\/code>/,\"*\":/\\*/,_:/_/,\"`\":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/},_E=function(){function t(e){Yd(this,t),this.text=e,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer=\"\",this.modStack=[],this.blocks=[]}return Kd(t,[{key:\"mod\",value:function(){return 0===this.modStack.length?\"normal\":this.modStack[0]}},{key:\"modName\",value:function(){return 0===this.modStack.length?\"normal\":\"mono\"===this.modStack[0]?\"mono\":this.bold&&this.ital?\"boldital\":this.bold?\"bold\":this.ital?\"ital\":void 0}},{key:\"emitBlock\",value:function(){this.spacing&&(this.add(\" \"),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer=\"\")}},{key:\"add\",value:function(t){\" \"===t&&(this.spacing=!0),this.spacing&&(this.buffer+=\" \",this.spacing=!1),\" \"!=t&&(this.buffer+=t)}},{key:\"parseWS\",value:function(t){return!!/[ \\t]/.test(t)&&(this.mono?this.add(t):this.spacing=!0,!0)}},{key:\"setTag\",value:function(t){this.emitBlock(),this[t]=!0,this.modStack.unshift(t)}},{key:\"unsetTag\",value:function(t){this.emitBlock(),this[t]=!1,this.modStack.shift()}},{key:\"parseStartTag\",value:function(t,e){return!(this.mono||this[t]||!this.match(e))&&(this.setTag(t),!0)}},{key:\"match\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.prepareRegExp(t),n=Kc(i,2),o=n[0],r=n[1],s=o.test(this.text.substr(this.position,r));return s&&e&&(this.position+=r-1),s}},{key:\"parseEndTag\",value:function(t,e,i){var n=this.mod()===t;return!(!(n=\"mono\"===t?n&&this.mono:n&&!this.mono)||!this.match(e))&&(void 0!==i?(this.position===this.text.length-1||this.match(i,!1))&&this.unsetTag(t):this.unsetTag(t),!0)}},{key:\"replace\",value:function(t,e){return!!this.match(t)&&(this.add(e),this.position+=length-1,!0)}},{key:\"prepareRegExp\",value:function(t){var e,i;if(t instanceof RegExp)i=t,e=1;else{var n=kE[t];i=void 0!==n?n:new RegExp(t),e=t.length}return[i,e]}}]),t}(),xE=function(){function t(e,i,n,o){var r=this;Yd(this,t),this.ctx=e,this.parent=i,this.selected=n,this.hover=o;this.lines=new wE((function(t,i){if(void 0===t)return 0;var s=r.parent.getFormattingValues(e,n,o,i),a=0;\"\"!==t&&(a=r.ctx.measureText(t).width);return{width:a,values:s}}))}return Kd(t,[{key:\"process\",value:function(t){if(!mE(t))return this.lines.finalize();var e=this.parent.fontOptions;t=(t=t.replace(/\\r\\n/g,\"\\n\")).replace(/\\r/g,\"\\n\");var i=String(t).split(\"\\n\"),n=i.length;if(e.multi)for(var o=0;o<n;o++){var r=this.splitBlocks(i[o],e.multi);if(void 0!==r)if(0!==r.length){if(e.maxWdt>0)for(var s=0;s<r.length;s++){var a=r[s].mod,h=r[s].text;this.splitStringIntoLines(h,a,!0)}else for(var l=0;l<r.length;l++){var d=r[l].mod,c=r[l].text;this.lines.append(c,d)}this.lines.newLine()}else this.lines.newLine(\"\")}else if(e.maxWdt>0)for(var u=0;u<n;u++)this.splitStringIntoLines(i[u]);else for(var f=0;f<n;f++)this.lines.newLine(i[f]);return this.lines.finalize()}},{key:\"decodeMarkupSystem\",value:function(t){var e=\"none\";return\"markdown\"===t||\"md\"===t?e=\"markdown\":!0!==t&&\"html\"!==t||(e=\"html\"),e}},{key:\"splitHtmlBlocks\",value:function(t){for(var e=new _E(t),i=function(t){return!!/&/.test(t)&&(e.replace(e.text,\"&lt;\",\"<\")||e.replace(e.text,\"&amp;\",\"&\")||e.add(\"&\"),!0)};e.position<e.text.length;){var n=e.text.charAt(e.position);e.parseWS(n)||/</.test(n)&&(e.parseStartTag(\"bold\",\"<b>\")||e.parseStartTag(\"ital\",\"<i>\")||e.parseStartTag(\"mono\",\"<code>\")||e.parseEndTag(\"bold\",\"</b>\")||e.parseEndTag(\"ital\",\"</i>\")||e.parseEndTag(\"mono\",\"</code>\"))||i(n)||e.add(n),e.position++}return e.emitBlock(),e.blocks}},{key:\"splitMarkdownBlocks\",value:function(t){for(var e=this,i=new _E(t),n=!0,o=function(t){return!!/\\\\/.test(t)&&(i.position<e.text.length+1&&(i.position++,t=e.text.charAt(i.position),/ \\t/.test(t)?i.spacing=!0:(i.add(t),n=!1)),!0)};i.position<i.text.length;){var r=i.text.charAt(i.position);i.parseWS(r)||o(r)||(n||i.spacing)&&(i.parseStartTag(\"bold\",\"*\")||i.parseStartTag(\"ital\",\"_\")||i.parseStartTag(\"mono\",\"`\"))||i.parseEndTag(\"bold\",\"*\",\"afterBold\")||i.parseEndTag(\"ital\",\"_\",\"afterItal\")||i.parseEndTag(\"mono\",\"`\",\"afterMono\")||(i.add(r),n=!1),i.position++}return i.emitBlock(),i.blocks}},{key:\"splitBlocks\",value:function(t,e){var i=this.decodeMarkupSystem(e);return\"none\"===i?[{text:t,mod:\"normal\"}]:\"markdown\"===i?this.splitMarkdownBlocks(t):\"html\"===i?this.splitHtmlBlocks(t):void 0}},{key:\"overMaxWidth\",value:function(t){var e=this.ctx.measureText(t).width;return this.lines.curWidth()+e>this.parent.fontOptions.maxWdt}},{key:\"getLongestFit\",value:function(t){for(var e=\"\",i=0;i<t.length;){var n=e+(\"\"===e?\"\":\" \")+t[i];if(this.overMaxWidth(n))break;e=n,i++}return i}},{key:\"getLongestFitWord\",value:function(t){for(var e=0;e<t.length&&!this.overMaxWidth(au(t).call(t,0,e));)e++;return e}},{key:\"splitStringIntoLines\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"normal\",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.parent.getFormattingValues(this.ctx,this.selected,this.hover,e);for(var n=(t=(t=t.replace(/^( +)/g,\"$1\\r\")).replace(/([^\\r][^ ]*)( +)/g,\"$1\\r$2\\r\")).split(\"\\r\");n.length>0;){var o=this.getLongestFit(n);if(0===o){var r=n[0],s=this.getLongestFitWord(r);this.lines.newLine(au(r).call(r,0,s),e),n[0]=au(r).call(r,s)}else{var a=o;\" \"===n[o-1]?o--:\" \"===n[a]&&a++;var h=au(n).call(n,0,o).join(\"\");o==n.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),n=au(n).call(n,a)}}}}]),t}(),EE=[\"bold\",\"ital\",\"boldital\",\"mono\"],OE=function(){function t(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];Yd(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=n}return Kd(t,[{key:\"setOptions\",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),mE(t.label)?this.labelDirty=!0:t.label=void 0,void 0!==t.font&&null!==t.font)if(\"string\"==typeof t.font)this.baseSize=this.fontOptions.size;else if(\"object\"===Qc(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:\"initFontOptions\",value:function(e){var i=this;hm(EE,(function(t){i.fontOptions[t]={}})),t.parseFontString(this.fontOptions,e)?this.fontOptions.vadjust=0:hm(e,(function(t,e){null!=t&&\"object\"!==Qc(t)&&(i.fontOptions[e]=t)}))}},{key:\"constrain\",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:\"middle\"},i=Mm(t,\"widthConstraint\");if(\"number\"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if(\"object\"===Qc(i)){var n=Mm(t,[\"widthConstraint\",\"maximum\"]);\"number\"==typeof n&&(e.maxWdt=Number(n));var o=Mm(t,[\"widthConstraint\",\"minimum\"]);\"number\"==typeof o&&(e.minWdt=Number(o))}var r=Mm(t,\"heightConstraint\");if(\"number\"==typeof r)e.minHgt=Number(r);else if(\"object\"===Qc(r)){var s=Mm(t,[\"heightConstraint\",\"minimum\"]);\"number\"==typeof s&&(e.minHgt=Number(s));var a=Mm(t,[\"heightConstraint\",\"valign\"]);\"string\"==typeof a&&(\"top\"!==a&&\"bottom\"!==a||(e.valign=a))}return e}},{key:\"update\",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),nm(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=gE(\"label\",e)}},{key:\"adjustSizes\",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:\"addFontOptionsToPile\",value:function(t,e){for(var i=0;i<e.length;++i)this.addFontToPile(t,e[i])}},{key:\"addFontToPile\",value:function(t,e){if(void 0!==e&&void 0!==e.font&&null!==e.font){var i=e.font;t.push(i)}}},{key:\"getBasicOptions\",value:function(e){for(var i={},n=0;n<e.length;++n){var o=e[n],r={};t.parseFontString(r,o)&&(o=r),hm(o,(function(t,e){void 0!==t&&(Object.prototype.hasOwnProperty.call(i,e)||(-1!==Fp(EE).call(EE,e)?i[e]={}:i[e]=t))}))}return i}},{key:\"getFontOption\",value:function(e,i,n){for(var o,r=0;r<e.length;++r){var s=e[r];if(Object.prototype.hasOwnProperty.call(s,i)){if(null==(o=s[i]))continue;var a={};if(t.parseFontString(a,o)&&(o=a),Object.prototype.hasOwnProperty.call(o,n))return o[n]}}if(Object.prototype.hasOwnProperty.call(this.fontOptions,n))return this.fontOptions[n];throw new Error(\"Did not find value for multi-font for property: '\"+n+\"'\")}},{key:\"getFontOptions\",value:function(t,e){for(var i={},n=[\"color\",\"size\",\"face\",\"mod\",\"vadjust\"],o=0;o<n.length;++o){var r=n[o];i[r]=this.getFontOption(t,e,r)}return i}},{key:\"propagateFonts\",value:function(t){var e=this,i=[];this.addFontOptionsToPile(i,t),this.fontOptions=this.getBasicOptions(i);for(var n=function(t){var n=EE[t],o=e.fontOptions[n];hm(e.getFontOptions(i,n),(function(t,e){o[e]=t})),o.size=Number(o.size),o.vadjust=Number(o.vadjust)},o=0;o<EE.length;++o)n(o)}},{key:\"draw\",value:function(t,e,i,n,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"middle\";if(void 0!==this.elementOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&s<this.elementOptions.scaling.label.drawThreshold-1||(s>=this.elementOptions.scaling.label.maxVisible&&(s=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,n,o,e,i,r),this._drawBackground(t),this._drawText(t,e,this.size.yLine,r,s))}}},{key:\"_drawBackground\",value:function(t){if(void 0!==this.fontOptions.background&&\"none\"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:\"_drawText\",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"middle\",o=arguments.length>4?arguments[4]:void 0,r=this._setAlignment(t,e,i,n),s=Kc(r,2);e=s[0],i=s[1],t.textAlign=\"left\",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(\"top\"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),\"bottom\"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var a=0;a<this.lineCount;a++){var h=this.lines[a];if(h&&h.blocks){var l=0;this.isEdgeLabel||\"center\"===this.fontOptions.align?l+=(this.size.width-h.width)/2:\"right\"===this.fontOptions.align&&(l+=this.size.width-h.width);for(var d=0;d<h.blocks.length;d++){var c=h.blocks[d];t.font=c.font;var u=this._getColor(c.color,o,c.strokeColor),f=Kc(u,2),p=f[0],v=f[1];c.strokeWidth>0&&(t.lineWidth=c.strokeWidth,t.strokeStyle=v,t.lineJoin=\"round\"),t.fillStyle=p,c.strokeWidth>0&&t.strokeText(c.text,e+l,i+c.vadjust),t.fillText(c.text,e+l,i+c.vadjust),l+=c.width}i+=h.height}}}},{key:\"_setAlignment\",value:function(t,e,i,n){if(this.isEdgeLabel&&\"horizontal\"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;\"top\"===this.fontOptions.align?(t.textBaseline=\"alphabetic\",i-=4):\"bottom\"===this.fontOptions.align?(t.textBaseline=\"hanging\",i+=4):t.textBaseline=\"middle\"}else t.textBaseline=n;return[e,i]}},{key:\"_getColor\",value:function(t,e,i){var n=t||\"#000000\",o=i||\"#ffffff\";if(e<=this.elementOptions.scaling.label.drawThreshold){var r=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));n=pm(n,r),o=pm(o,r)}return[n,o]}},{key:\"getTextSize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:\"getSize\",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case\"middle\":t=i,e=.5*-this.size.height;break;case\"top\":t=i,e=-(this.size.height+2);break;case\"bottom\":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:\"calculateLabelSize\",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"middle\";this._processLabel(t,e,i),this.size.left=n-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,\"hanging\"===r&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:\"getFormattingValues\",value:function(t,e,i,n){var o=function(t,e,i){return\"normal\"===e?\"mod\"===i?\"\":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},r={color:o(this.fontOptions,n,\"color\"),size:o(this.fontOptions,n,\"size\"),face:o(this.fontOptions,n,\"face\"),mod:o(this.fontOptions,n,\"mod\"),vadjust:o(this.fontOptions,n,\"vadjust\"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&(\"normal\"===n&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?r.mod=\"bold\":\"function\"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(r,this.elementOptions.id,e,i));var s=\"\";return void 0!==r.mod&&\"\"!==r.mod&&(s+=r.mod+\" \"),s+=r.size+\"px \"+r.face,t.font=s.replace(/\"/g,\"\"),r.font=t.font,r.height=r.size,r}},{key:\"differentState\",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:\"_processLabelText\",value:function(t,e,i,n){return new xE(t,this,e,i).process(n)}},{key:\"_processLabel\",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var n=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&n.width<this.fontOptions.minWdt&&(n.width=this.fontOptions.minWdt),this.size.labelHeight=n.height,this.fontOptions.minHgt>0&&n.height<this.fontOptions.minHgt&&(n.height=this.fontOptions.minHgt),this.lines=n.lines,this.lineCount=n.lines.length,this.size.width=n.width,this.size.height=n.height,this.selectedState=e,this.hoverState=i,this.labelDirty=!1}}},{key:\"visible\",value:function(){return 0!==this.size.width&&0!==this.size.height&&void 0!==this.elementOptions.label&&!(this.fontOptions.size*this.body.view.scale<this.elementOptions.scaling.label.drawThreshold-1)}}],[{key:\"parseFontString\",value:function(t,e){if(!e||\"string\"!=typeof e)return!1;var i=e.split(\" \");return t.size=+i[0].replace(\"px\",\"\"),t.face=i[1],t.color=i[2],!0}}]),t}(),CE=function(){function t(e,i,n){Yd(this,t),this.body=i,this.labelModule=n,this.setOptions(e),this.top=void 0,this.left=void 0,this.height=void 0,this.width=void 0,this.radius=void 0,this.margin=void 0,this.refreshNeeded=!0,this.boundingBox={top:0,left:0,right:0,bottom:0}}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t}},{key:\"_setMargins\",value:function(t){this.margin={},this.options.margin&&(\"object\"==Qc(this.options.margin)?(this.margin.top=this.options.margin.top,this.margin.right=this.options.margin.right,this.margin.bottom=this.options.margin.bottom,this.margin.left=this.options.margin.left):(this.margin.top=this.options.margin,this.margin.right=this.options.margin,this.margin.bottom=this.options.margin,this.margin.left=this.options.margin)),t.adjustSizes(this.margin)}},{key:\"_distanceToBorder\",value:function(t,e){var i=this.options.borderWidth;return t&&this.resize(t),Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}},{key:\"enableShadow\",value:function(t,e){e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:\"disableShadow\",value:function(t,e){e.shadow&&(t.shadowColor=\"rgba(0,0,0,0)\",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}},{key:\"enableBorderDashes\",value:function(t,e){if(!1!==e.borderDashes)if(void 0!==t.setLineDash){var i=e.borderDashes;!0===i&&(i=[5,15]),t.setLineDash(i)}else console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\"),this.options.shapeProperties.borderDashes=!1,e.borderDashes=!1}},{key:\"disableBorderDashes\",value:function(t,e){!1!==e.borderDashes&&(void 0!==t.setLineDash?t.setLineDash([0]):(console.warn(\"setLineDash is not supported in this browser. The dashed borders cannot be used.\"),this.options.shapeProperties.borderDashes=!1,e.borderDashes=!1))}},{key:\"needsRefresh\",value:function(t,e){return!0===this.refreshNeeded?(this.refreshNeeded=!1,!0):void 0===this.width||this.labelModule.differentState(t,e)}},{key:\"initContextForDraw\",value:function(t,e){var i=e.borderWidth/this.body.view.scale;t.lineWidth=Math.min(this.width,i),t.strokeStyle=e.borderColor,t.fillStyle=e.color}},{key:\"performStroke\",value:function(t,e){var i=e.borderWidth/this.body.view.scale;t.save(),i>0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:\"performFill\",value:function(t,e){t.save(),t.fillStyle=e.color,this.enableShadow(t,e),jv(t).call(t),this.disableShadow(t,e),t.restore(),this.performStroke(t,e)}},{key:\"_addBoundingBoxMargin\",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:\"_updateBoundingBox\",value:function(t,e,i,n,o){void 0!==i&&this.resize(i,n,o),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:\"updateBoundingBox\",value:function(t,e,i,n,o){this._updateBoundingBox(t,e,i,n,o)}},{key:\"getDimensionsFromLabel\",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var n=this.textSize.width,o=this.textSize.height;return 0===n&&(n=14,o=14),{width:n,height:o}}}]),t}();function SE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var TE=function(t){zk(i,t);var e=SE(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return Kd(i,[{key:\"resize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i);this.width=n.width+this.margin.right+this.margin.left,this.height=n.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:\"draw\",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,r),Fn(t,this.left,this.top,this.width,this.height,r.borderRadius),this.performFill(t,r),this.updateBoundingBox(e,i,t,n,o),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:\"updateBoundingBox\",value:function(t,e,i,n,o){this._updateBoundingBox(t,e,i,n,o);var r=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(r)}},{key:\"distanceToBorder\",value:function(t,e){t&&this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),i}(CE);function ME(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var PE=function(t){zk(i,t);var e=ME(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o)).labelOffset=0,r.selected=!1,r}return Kd(i,[{key:\"setOptions\",value:function(t,e,i){this.options=t,void 0===e&&void 0===i||this.setImages(e,i)}},{key:\"setImages\",value:function(t,e){e&&this.selected?(this.imageObj=e,this.imageObjAlt=t):(this.imageObj=t,this.imageObjAlt=e)}},{key:\"switchImages\",value:function(t){var e=t&&!this.selected||!t&&this.selected;if(this.selected=t,void 0!==this.imageObjAlt&&e){var i=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=i}}},{key:\"_getImagePadding\",value:function(){var t={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){var e=this.options.imagePadding;\"object\"==Qc(e)?(t.top=e.top,t.right=e.right,t.bottom=e.bottom,t.left=e.left):(t.top=e,t.right=e,t.bottom=e,t.left=e)}return t}},{key:\"_resizeImage\",value:function(){var t,e;if(!1===this.options.shapeProperties.useImageSize){var i=1,n=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?i=this.imageObj.width/this.imageObj.height:n=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*n}else{var o=this._getImagePadding();t=this.imageObj.width+o.left+o.right,e=this.imageObj.height+o.top+o.bottom}this.width=t,this.height=e,this.radius=.5*this.width}},{key:\"_drawRawCircle\",value:function(t,e,i,n){this.initContextForDraw(t,n),Nn(t,e,i,n.size),this.performFill(t,n)}},{key:\"_drawImageAtPosition\",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=void 0!==e.opacity?e.opacity:1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale);var n=this._getImagePadding(),o=this.left+n.left,r=this.top+n.top,s=this.width-n.left-n.right,a=this.height-n.top-n.bottom;this.imageObj.drawImageAtPosition(t,i,o,r,s,a),this.disableShadow(t,e)}}},{key:\"_drawImageLabel\",value:function(t,e,i,n,o){var r=0;if(void 0!==this.height){r=.5*this.height;var s=this.labelModule.getTextSize(t,n,o);s.lineCount>=1&&(r+=s.height/2)}var a=i+r;this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,a,n,o,\"hanging\")}}]),i}(CE);function DE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var IE=function(t){zk(i,t);var e=DE(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return Kd(i,[{key:\"resize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i),o=Math.max(n.width+this.margin.right+this.margin.left,n.height+this.margin.top+this.margin.bottom);this.options.size=o/2,this.width=o,this.height=o,this.radius=this.width/2}}},{key:\"draw\",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,r),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,n,o)}},{key:\"updateBoundingBox\",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:\"distanceToBorder\",value:function(t){return t&&this.resize(t),.5*this.width}}]),i}(PE);function BE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var zE=function(t){zk(i,t);var e=BE(i);function i(t,n,o,r,s){var a;return Yd(this,i),(a=e.call(this,t,n,o)).setImages(r,s),a}return Kd(i,[{key:\"resize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,n=void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height;if(n){var o=2*this.options.size;return this.width=o,this.height=o,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:\"draw\",value:function(t,e,i,n,o,r){this.switchImages(n),this.resize();var s=e,a=i;\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.left=e,this.top=i,s+=this.width/2,a+=this.height/2):(this.left=e-this.width/2,this.top=i-this.height/2),this._drawRawCircle(t,s,a,r),t.save(),t.clip(),this._drawImageAtPosition(t,r),t.restore(),this._drawImageLabel(t,s,a,n,o),this.updateBoundingBox(e,i)}},{key:\"updateBoundingBox\",value:function(t,e){\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.boundingBox.top=e,this.boundingBox.left=t,this.boundingBox.right=t+2*this.options.size,this.boundingBox.bottom=e+2*this.options.size):(this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:\"distanceToBorder\",value:function(t){return t&&this.resize(t),.5*this.width}}]),i}(PE);function NE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var FE=function(t){zk(i,t);var e=NE(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"resize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){var o,r;this.labelModule.getTextSize(t,e,i);var s=2*n.size;this.width=null!==(o=this.customSizeWidth)&&void 0!==o?o:s,this.height=null!==(r=this.customSizeHeight)&&void 0!==r?r:s,this.radius=.5*this.width}}},{key:\"_drawShape\",value:function(t,e,i,n,o,r,s,a){var h,l=this;return this.resize(t,r,s,a),this.left=n-this.width/2,this.top=o-this.height/2,this.initContextForDraw(t,a),(h=e,Object.prototype.hasOwnProperty.call(Ln,h)?Ln[h]:function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n<e;n++)i[n-1]=arguments[n];CanvasRenderingContext2D.prototype[h].call(t,i)})(t,n,o,a.size),this.performFill(t,a),void 0!==this.options.icon&&void 0!==this.options.icon.code&&(t.font=(r?\"bold \":\"\")+this.height/2+\"px \"+(this.options.icon.face||\"FontAwesome\"),t.fillStyle=this.options.icon.color||\"black\",t.textAlign=\"center\",t.textBaseline=\"middle\",t.fillText(this.options.icon.code,n,o)),{drawExternalLabel:function(){if(void 0!==l.options.label){l.labelModule.calculateLabelSize(t,r,s,n,o,\"hanging\");var e=o+.5*l.height+.5*l.labelModule.size.height;l.labelModule.draw(t,n,e,r,s,\"hanging\")}l.updateBoundingBox(n,o)}}}},{key:\"updateBoundingBox\",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),i}(CE);function AE(t,e){var i=bu(t);if(hd){var n=hd(t);e&&(n=Xf(n).call(n,(function(e){return bd(t,e).enumerable}))),i.push.apply(i,n)}return i}function jE(t){for(var e=1;e<arguments.length;e++){var i,n,o=null!=arguments[e]?arguments[e]:{};e%2?Fu(i=AE(Object(o),!0)).call(i,(function(e){$d(t,e,o[e])})):Pd?Ad(t,Pd(o)):Fu(n=AE(Object(o))).call(n,(function(e){Ud(t,e,bd(o,e))}))}return t}function RE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var LE=function(t){zk(i,t);var e=RE(i);function i(t,n,o,r){var s;return Yd(this,i),(s=e.call(this,t,n,o,r)).ctxRenderer=r,s}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){this.resize(t,n,o,r),this.left=e-this.width/2,this.top=i-this.height/2,t.save();var s=this.ctxRenderer({ctx:t,id:this.options.id,x:e,y:i,state:{selected:n,hover:o},style:jE({},r),label:this.options.label});if(null!=s.drawNode&&s.drawNode(),t.restore(),s.drawExternalLabel){var a=s.drawExternalLabel;s.drawExternalLabel=function(){t.save(),a(),t.restore()}}return s.nodeDimensions&&(this.customSizeWidth=s.nodeDimensions.width,this.customSizeHeight=s.nodeDimensions.height),s}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function HE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var WE=function(t){zk(i,t);var e=HE(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return Kd(i,[{key:\"resize\",value:function(t,e,i){if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i).width+this.margin.right+this.margin.left;this.width=n,this.height=n,this.radius=this.width/2}}},{key:\"draw\",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,r),jn(t,e-this.width/2,i-this.height/2,this.width,this.height),this.performFill(t,r),this.updateBoundingBox(e,i,t,n,o),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(CE);function qE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var VE=function(t){zk(i,t);var e=qE(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"diamond\",4,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function UE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var YE=function(t){zk(i,t);var e=UE(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"circle\",2,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t){return t&&this.resize(t),this.options.size}}]),i}(FE);function XE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var GE=function(t){zk(i,t);var e=XE(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"resize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i);this.height=2*n.height,this.width=n.width+n.height,this.radius=.5*this.width}}},{key:\"draw\",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,r),An(t,this.left,this.top,this.width,this.height),this.performFill(t,r),this.updateBoundingBox(e,i,t,n,o),this.labelModule.draw(t,e,i,n,o)}},{key:\"distanceToBorder\",value:function(t,e){t&&this.resize(t);var i=.5*this.width,n=.5*this.height,o=Math.sin(e)*i,r=Math.cos(e)*n;return i*n/Math.sqrt(o*o+r*r)}}]),i}(CE);function KE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var $E=function(t){zk(i,t);var e=KE(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return Kd(i,[{key:\"resize\",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:\"draw\",value:function(t,e,i,n,o,r){var s=this;return this.resize(t,n,o),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,n,o,r),{drawExternalLabel:function(){if(void 0!==s.options.label){s.labelModule.draw(t,s.left+s.iconSize.width/2+s.margin.left,i+s.height/2+5,n)}s.updateBoundingBox(e,i)}}}},{key:\"updateBoundingBox\",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:\"_icon\",value:function(t,e,i,n,o,r){var s=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=[null!=this.options.icon.weight?this.options.icon.weight:n?\"bold\":\"\",(null!=this.options.icon.weight&&n?5:0)+s+\"px\",this.options.icon.face].join(\" \"),t.fillStyle=this.options.icon.color||\"black\",t.textAlign=\"center\",t.textBaseline=\"middle\",this.enableShadow(t,r),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,r)):console.error(\"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\")}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(CE);function ZE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var QE=function(t){zk(i,t);var e=ZE(i);function i(t,n,o,r,s){var a;return Yd(this,i),(a=e.call(this,t,n,o)).setImages(r,s),a}return Kd(i,[{key:\"resize\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,n=void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height;if(n){var o=2*this.options.size;return this.width=o,void(this.height=o)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:\"draw\",value:function(t,e,i,n,o,r){t.save(),this.switchImages(n),this.resize();var s=e,a=i;if(\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.left=e,this.top=i,s+=this.width/2,a+=this.height/2):(this.left=e-this.width/2,this.top=i-this.height/2),!0===this.options.shapeProperties.useBorderWithImage){var h=this.options.borderWidth,l=this.options.borderWidthSelected||2*this.options.borderWidth,d=(n?l:h)/this.body.view.scale;t.lineWidth=Math.min(this.width,d),t.beginPath();var c=n?this.options.color.highlight.border:o?this.options.color.hover.border:this.options.color.border,u=n?this.options.color.highlight.background:o?this.options.color.hover.background:this.options.color.background;void 0!==r.opacity&&(c=pm(c,r.opacity),u=pm(u,r.opacity)),t.strokeStyle=c,t.fillStyle=u,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),jv(t).call(t),this.performStroke(t,r),t.closePath()}this._drawImageAtPosition(t,r),this._drawImageLabel(t,s,a,n,o),this.updateBoundingBox(e,i),t.restore()}},{key:\"updateBoundingBox\",value:function(t,e){this.resize(),\"top-left\"===this.options.shapeProperties.coordinateOrigin?(this.left=t,this.top=e):(this.left=t-this.width/2,this.top=e-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(PE);function JE(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var tO=function(t){zk(i,t);var e=JE(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"square\",2,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function eO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var iO=function(t){zk(i,t);var e=eO(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"hexagon\",4,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function nO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var oO=function(t){zk(i,t);var e=nO(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"star\",4,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function rO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var sO=function(t){zk(i,t);var e=rO(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return Kd(i,[{key:\"resize\",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:\"draw\",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,r),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o),this.disableShadow(t,r),this.updateBoundingBox(e,i,t,n,o)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(CE);function aO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var hO=function(t){zk(i,t);var e=aO(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"triangle\",3,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function lO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var dO=function(t){zk(i,t);var e=lO(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"draw\",value:function(t,e,i,n,o,r){return this._drawShape(t,\"triangleDown\",3,e,i,n,o,r)}},{key:\"distanceToBorder\",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(FE);function cO(t,e){var i=bu(t);if(hd){var n=hd(t);e&&(n=Xf(n).call(n,(function(e){return bd(t,e).enumerable}))),i.push.apply(i,n)}return i}function uO(t){for(var e=1;e<arguments.length;e++){var i,n,o=null!=arguments[e]?arguments[e]:{};e%2?Fu(i=cO(Object(o),!0)).call(i,(function(e){$d(t,e,o[e])})):Pd?Ad(t,Pd(o)):Fu(n=cO(Object(o))).call(n,(function(e){Ud(t,e,bd(o,e))}))}return t}var fO=function(){function t(e,i,n,o,r,s){Yd(this,t),this.options=Cm(r),this.globalOptions=r,this.defaultOptions=s,this.body=i,this.edges=[],this.id=void 0,this.imagelist=n,this.grouplist=o,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new OE(this.body,this.options,!1),this.setOptions(e)}return Kd(t,[{key:\"attachEdge\",value:function(t){var e;-1===Fp(e=this.edges).call(e,t)&&this.edges.push(t)}},{key:\"detachEdge\",value:function(t){var e,i,n=Fp(e=this.edges).call(e,t);-1!=n&&ff(i=this.edges).call(i,n,1)}},{key:\"setOptions\",value:function(e){var i=this.options.shape;if(e){if(void 0!==e.color&&(this._localColor=e.color),void 0!==e.id&&(this.id=e.id),void 0===this.id)throw new Error(\"Node must have an id\");t.checkMass(e,this.id),void 0!==e.x&&(null===e.x?(this.x=void 0,this.predefinedPosition=!1):(this.x=Ep(e.x),this.predefinedPosition=!0)),void 0!==e.y&&(null===e.y?(this.y=void 0,this.predefinedPosition=!1):(this.y=Ep(e.y),this.predefinedPosition=!0)),void 0!==e.size&&(this.baseSize=e.size),void 0!==e.value&&(e.value=lE(e.value)),t.parseOptions(this.options,e,!0,this.globalOptions,this.grouplist);var n=[e,this.options,this.defaultOptions];return this.chooser=gE(\"node\",n),this._load_images(),this.updateLabelModule(e),void 0!==e.opacity&&t.checkOpacity(e.opacity)&&(this.options.opacity=e.opacity),this.updateShape(i),void 0!==e.hidden||void 0!==e.physics}}},{key:\"_load_images\",value:function(){if((\"circularImage\"===this.options.shape||\"image\"===this.options.shape)&&void 0===this.options.image)throw new Error(\"Option image must be defined for node type '\"+this.options.shape+\"'\");if(void 0!==this.options.image){if(void 0===this.imagelist)throw new Error(\"Internal Error: No images provided\");if(\"string\"==typeof this.options.image)this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage,this.id);else{if(void 0===this.options.image.unselected)throw new Error(\"No unselected image provided\");this.imageObj=this.imagelist.load(this.options.image.unselected,this.options.brokenImage,this.id),void 0!==this.options.image.selected?this.imageObjAlt=this.imagelist.load(this.options.image.selected,this.options.brokenImage,this.id):this.imageObjAlt=void 0}}}},{key:\"getFormattingValues\",value:function(){var t={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?!0===this.chooser?this.selected?(null!=this.options.borderWidthSelected?t.borderWidth=this.options.borderWidthSelected:t.borderWidth*=2,t.color=this.options.color.highlight.background,t.borderColor=this.options.color.highlight.border,t.shadow=this.options.shadow.enabled):this.hover&&(t.color=this.options.color.hover.background,t.borderColor=this.options.color.hover.border,t.shadow=this.options.shadow.enabled):\"function\"==typeof this.chooser&&(this.chooser(t,this.options.id,this.selected,this.hover),!1===t.shadow&&(t.shadowColor===this.options.shadow.color&&t.shadowSize===this.options.shadow.size&&t.shadowX===this.options.shadow.x&&t.shadowY===this.options.shadow.y||(t.shadow=!0))):t.shadow=this.options.shadow.enabled,void 0!==this.options.opacity){var e=this.options.opacity;t.borderColor=pm(t.borderColor,e),t.color=pm(t.color,e),t.shadowColor=pm(t.shadowColor,e)}return t}},{key:\"updateLabelModule\",value:function(e){void 0!==this.options.label&&null!==this.options.label||(this.options.label=\"\"),t.updateGroupOptions(this.options,uO(uO({},e),{},{color:e&&e.color||this._localColor||void 0}),this.grouplist);var i=this.grouplist.get(this.options.group,!1),n=[e,this.options,i,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,n),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:\"updateShape\",value:function(t){if(t===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case\"box\":this.shape=new TE(this.options,this.body,this.labelModule);break;case\"circle\":this.shape=new IE(this.options,this.body,this.labelModule);break;case\"circularImage\":this.shape=new zE(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"custom\":this.shape=new LE(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case\"database\":this.shape=new WE(this.options,this.body,this.labelModule);break;case\"diamond\":this.shape=new VE(this.options,this.body,this.labelModule);break;case\"dot\":this.shape=new YE(this.options,this.body,this.labelModule);break;case\"ellipse\":default:this.shape=new GE(this.options,this.body,this.labelModule);break;case\"icon\":this.shape=new $E(this.options,this.body,this.labelModule);break;case\"image\":this.shape=new QE(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case\"square\":this.shape=new tO(this.options,this.body,this.labelModule);break;case\"hexagon\":this.shape=new iO(this.options,this.body,this.labelModule);break;case\"star\":this.shape=new oO(this.options,this.body,this.labelModule);break;case\"text\":this.shape=new sO(this.options,this.body,this.labelModule);break;case\"triangle\":this.shape=new hO(this.options,this.body,this.labelModule);break;case\"triangleDown\":this.shape=new dO(this.options,this.body,this.labelModule)}this.needsRefresh()}},{key:\"select\",value:function(){this.selected=!0,this.needsRefresh()}},{key:\"unselect\",value:function(){this.selected=!1,this.needsRefresh()}},{key:\"needsRefresh\",value:function(){this.shape.refreshNeeded=!0}},{key:\"getTitle\",value:function(){return this.options.title}},{key:\"distanceToBorder\",value:function(t,e){return this.shape.distanceToBorder(t,e)}},{key:\"isFixed\",value:function(){return this.options.fixed.x&&this.options.fixed.y}},{key:\"isSelected\",value:function(){return this.selected}},{key:\"getValue\",value:function(){return this.options.value}},{key:\"getLabelSize\",value:function(){return this.labelModule.size()}},{key:\"setValueRange\",value:function(t,e,i){if(void 0!==this.options.value){var n=this.options.scaling.customScalingFunction(t,e,i,this.options.value),o=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var r=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*r}this.options.size=this.options.scaling.min+n*o}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}},{key:\"draw\",value:function(t){var e=this.getFormattingValues();return this.shape.draw(t,this.x,this.y,this.selected,this.hover,e)||{}}},{key:\"updateBoundingBox\",value:function(t){this.shape.updateBoundingBox(this.x,this.y,t)}},{key:\"resize\",value:function(t){var e=this.getFormattingValues();this.shape.resize(t,this.selected,this.hover,e)}},{key:\"getItemsOnPoint\",value:function(t){var e=[];return this.labelModule.visible()&&yE(this.labelModule.getSize(),t)&&e.push({nodeId:this.id,labelId:0}),yE(this.shape.boundingBox,t)&&e.push({nodeId:this.id}),e}},{key:\"isOverlappingWith\",value:function(t){return this.shape.left<t.right&&this.shape.left+this.shape.width>t.left&&this.shape.top<t.bottom&&this.shape.top+this.shape.height>t.top}},{key:\"isBoundingBoxOverlappingWith\",value:function(t){return this.shape.boundingBox.left<t.right&&this.shape.boundingBox.right>t.left&&this.shape.boundingBox.top<t.bottom&&this.shape.boundingBox.bottom>t.top}}],[{key:\"checkOpacity\",value:function(t){return 0<=t&&t<=1}},{key:\"checkCoordinateOrigin\",value:function(t){return void 0===t||\"center\"===t||\"top-left\"===t}},{key:\"updateGroupOptions\",value:function(e,i,n){var o;if(void 0!==n){var r=e.group;if(void 0!==i&&void 0!==i.group&&r!==i.group)throw new Error(\"updateGroupOptions: group values in options don't match.\");if(\"number\"==typeof r||\"string\"==typeof r&&\"\"!=r){var s=n.get(r);void 0!==s.opacity&&void 0===i.opacity&&(t.checkOpacity(s.opacity)||(console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+s.opacity),s.opacity=void 0));var a=Xf(o=vE(i)).call(o,(function(t){return null!=i[t]}));a.push(\"font\"),im(a,e,s),e.color=gm(e.color)}}}},{key:\"parseOptions\",value:function(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4?arguments[4]:void 0,s=[\"color\",\"fixed\",\"shadow\"];if(im(s,e,i,n),t.checkMass(i),void 0!==e.opacity&&(t.checkOpacity(e.opacity)||(console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+e.opacity),e.opacity=void 0)),void 0!==i.opacity&&(t.checkOpacity(i.opacity)||(console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+i.opacity),i.opacity=void 0)),i.shapeProperties&&!t.checkCoordinateOrigin(i.shapeProperties.coordinateOrigin)&&console.error(\"Invalid option for node coordinateOrigin, found: \"+i.shapeProperties.coordinateOrigin),Sm(e,i,\"shadow\",o),void 0!==i.color&&null!==i.color){var a=gm(i.color);Jy(e.color,a)}else!0===n&&null===i.color&&(e.color=Cm(o.color));void 0!==i.fixed&&null!==i.fixed&&(\"boolean\"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&\"boolean\"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&\"boolean\"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===n&&null===i.font&&(e.font=Cm(o.font)),t.updateGroupOptions(e,i,r),void 0!==i.scaling&&Sm(e.scaling,i.scaling,\"label\",o.scaling)}},{key:\"checkMass\",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i=\"\";void 0!==e&&(i=\" in node id: \"+e),console.error(\"%cNegative or zero mass disallowed\"+i+\", setting mass to 1.\",Vm),t.mass=1}}}]),t}();function pO(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return vO(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vO(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function vO(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var gO=function(){function t(e,i,n,o){var r,s=this;if(Yd(this,t),this.body=e,this.images=i,this.groups=n,this.layoutEngine=o,this.body.functions.createNode=zn(r=this.create).call(r,this),this.nodesListeners={add:function(t,e){s.add(e.items)},update:function(t,e){s.update(e.items,e.data,e.oldData)},remove:function(t,e){s.remove(e.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:\"#2B7CE9\",background:\"#97C2FC\",highlight:{border:\"#2B7CE9\",background:\"#D2E5FF\"},hover:{border:\"#2B7CE9\",background:\"#D2E5FF\"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:0,strokeColor:\"#ffffff\",align:\"center\",vadjust:0,multi:!1,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"monospace\",vadjust:2}},group:void 0,hidden:!1,icon:{face:\"FontAwesome\",code:void 0,size:50,color:\"#2B7CE9\"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,n){if(e===t)return.5;var o=1/(e-t);return Math.max(0,(n-t)*o)}},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},shape:\"ellipse\",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:\"center\"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw\"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\";this.options=Cm(this.defaultOptions),this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t,e,i=this;this.body.emitter.on(\"refreshNodes\",zn(t=this.refresh).call(t,this)),this.body.emitter.on(\"refresh\",zn(e=this.refresh).call(e,this)),this.body.emitter.on(\"destroy\",(function(){hm(i.nodesListeners,(function(t,e){i.body.data.nodes&&i.body.data.nodes.off(e,t)})),delete i.body.functions.createNode,delete i.nodesListeners.add,delete i.nodesListeners.update,delete i.nodesListeners.remove,delete i.nodesListeners}))}},{key:\"setOptions\",value:function(t){if(void 0!==t){if(fO.parseOptions(this.options,t),void 0!==t.opacity&&(ek(t.opacity)||!ok(t.opacity)||t.opacity<0||t.opacity>1?console.error(\"Invalid option for node opacity. Value must be between 0 and 1, found: \"+t.opacity):this.options.opacity=t.opacity),void 0!==t.shape)for(var e in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&this.body.nodes[e].updateShape();if(void 0!==t.font||void 0!==t.widthConstraint||void 0!==t.heightConstraint)for(var i=0,n=bu(this.body.nodes);i<n.length;i++){var o=n[i];this.body.nodes[o].updateLabelModule(),this.body.nodes[o].needsRefresh()}if(void 0!==t.size)for(var r in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,r)&&this.body.nodes[r].needsRefresh();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit(\"_dataChanged\")}}},{key:\"setData\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(Qx(\"id\",t))this.body.data.nodes=t;else if(lu(t))this.body.data.nodes=new Kx,this.body.data.nodes.add(t);else{if(t)throw new TypeError(\"Array or DataSet expected\");this.body.data.nodes=new Kx}if(i&&hm(this.nodesListeners,(function(t,e){i.off(e,t)})),this.body.nodes={},this.body.data.nodes){var n=this;hm(this.nodesListeners,(function(t,e){n.body.data.nodes.on(e,t)}));var o=this.body.data.nodes.getIds();this.add(o,!0)}!1===e&&this.body.emitter.emit(\"_dataChanged\")}},{key:\"add\",value:function(t){for(var e,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[],o=0;o<t.length;o++){e=t[o];var r=this.body.data.nodes.get(e),s=this.create(r);n.push(s),this.body.nodes[e]=s}this.layoutEngine.positionInitially(n),!1===i&&this.body.emitter.emit(\"_dataChanged\")}},{key:\"update\",value:function(t,e,i){for(var n=this.body.nodes,o=!1,r=0;r<t.length;r++){var s=t[r],a=n[s],h=e[r];void 0!==a?a.setOptions(h)&&(o=!0):(o=!0,a=this.create(h),n[s]=a)}o||void 0===i||(o=ck(e).call(e,(function(t,e){var n=i[e];return n&&n.level!==t.level}))),!0===o?this.body.emitter.emit(\"_dataChanged\"):this.body.emitter.emit(\"_dataUpdated\")}},{key:\"remove\",value:function(t){for(var e=this.body.nodes,i=0;i<t.length;i++){delete e[t[i]]}this.body.emitter.emit(\"_dataChanged\")}},{key:\"create\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:fO;return new e(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:\"refresh\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];hm(this.body.nodes,(function(i,n){var o=t.body.data.nodes.get(n);void 0!==o&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(o))}))}},{key:\"getPositions\",value:function(t){var e={};if(void 0!==t){if(!0===lu(t)){for(var i=0;i<t.length;i++)if(void 0!==this.body.nodes[t[i]]){var n=this.body.nodes[t[i]];e[t[i]]={x:Math.round(n.x),y:Math.round(n.y)}}}else if(void 0!==this.body.nodes[t]){var o=this.body.nodes[t];e[t]={x:Math.round(o.x),y:Math.round(o.y)}}}else for(var r=0;r<this.body.nodeIndices.length;r++){var s=this.body.nodes[this.body.nodeIndices[r]];e[this.body.nodeIndices[r]]={x:Math.round(s.x),y:Math.round(s.y)}}return e}},{key:\"getPosition\",value:function(t){if(null==t)throw new TypeError(\"No id was specified for getPosition method.\");if(null==this.body.nodes[t])throw new ReferenceError(\"NodeId provided for getPosition does not exist. Provided: \".concat(t));return{x:Math.round(this.body.nodes[t].x),y:Math.round(this.body.nodes[t].y)}}},{key:\"storePositions\",value:function(){var t,e=[],i=this.body.data.nodes.getDataSet(),n=pO(i.get());try{for(n.s();!(t=n.n()).done;){var o=t.value,r=o.id,s=this.body.nodes[r],a=Math.round(s.x),h=Math.round(s.y);o.x===a&&o.y===h||e.push({id:r,x:a,y:h})}}catch(t){n.e(t)}finally{n.f()}i.update(e)}},{key:\"getBoundingBox\",value:function(t){if(void 0!==this.body.nodes[t])return this.body.nodes[t].shape.boundingBox}},{key:\"getConnectedNodes\",value:function(t,e){var i=[];if(void 0!==this.body.nodes[t])for(var n=this.body.nodes[t],o={},r=0;r<n.edges.length;r++){var s=n.edges[r];\"to\"!==e&&s.toId==n.id?void 0===o[s.fromId]&&(i.push(s.fromId),o[s.fromId]=!0):\"from\"!==e&&s.fromId==n.id&&void 0===o[s.toId]&&(i.push(s.toId),o[s.toId]=!0)}return i}},{key:\"getConnectedEdges\",value:function(t){var e=[];if(void 0!==this.body.nodes[t])for(var i=this.body.nodes[t],n=0;n<i.edges.length;n++)e.push(i.edges[n].id);else console.error(\"NodeId provided for getConnectedEdges does not exist. Provided: \",t);return e}},{key:\"moveNode\",value:function(t,e,i){var n=this;void 0!==this.body.nodes[t]?(this.body.nodes[t].x=Number(e),this.body.nodes[t].y=Number(i),Sv((function(){n.body.emitter.emit(\"startSimulation\")}),0)):console.error(\"Node id supplied to moveNode does not exist. Provided: \",t)}}]),t}(),yO=Wt,mO=_,bO=Y,wO=$e,kO=function(t){return void 0!==t&&(yO(t,\"value\")||yO(t,\"writable\"))},_O=m,xO=Pr;_i({target:\"Reflect\",stat:!0},{get:function t(e,i){var n,o,r=arguments.length<3?e:arguments[2];return wO(e)===r?e[i]:(n=_O.f(e,i))?kO(n)?n.value:void 0===n.get?void 0:mO(n.get,r):bO(o=xO(e))?t(o,i,r):void 0}});var EO=X.Reflect.get,OO=md;function CO(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=Ak(t)););return t}function SO(){return SO=\"undefined\"!=typeof Reflect&&EO?EO:function(t,e,i){var n=CO(t,e);if(n){var o=OO(n,e);return o.get?o.get.call(arguments.length<3?t:i):o.value}},SO.apply(this,arguments)}var TO=_i,MO=Math.hypot,PO=Math.abs,DO=Math.sqrt;TO({target:\"Math\",stat:!0,forced:!!MO&&MO(1/0,NaN)!==1/0},{hypot:function(t,e){for(var i,n,o=0,r=0,s=arguments.length,a=0;r<s;)a<(i=PO(arguments[r++]))?(o=o*(n=a/i)*n+1,a=i):o+=i>0?(n=i/a)*n:i;return a===1/0?1/0:a*DO(o)}});var IO=X.Math.hypot;function BO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var zO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"transform\",value:function(t,e){lu(t)||(t=[t]);for(var i=e.point.x,n=e.point.y,o=e.angle,r=e.length,s=0;s<t.length;++s){var a=t[s],h=a.x*Math.cos(o)-a.y*Math.sin(o),l=a.x*Math.sin(o)+a.y*Math.cos(o);a.x=i+r*h,a.y=n+r*l}}},{key:\"drawPath\",value:function(t,e){t.beginPath(),t.moveTo(e[0].x,e[0].y);for(var i=1;i<e.length;++i)t.lineTo(e[i].x,e[i].y);t.closePath()}}]),t}(),NO=function(t){zk(i,t);var e=BO(i);function i(){return Yd(this,i),e.apply(this,arguments)}return Kd(i,null,[{key:\"draw\",value:function(t,e){if(e.image){t.save(),t.translate(e.point.x,e.point.y),t.rotate(Math.PI/2+e.angle);var i=null!=e.imageWidth?e.imageWidth:e.image.width,n=null!=e.imageHeight?e.imageHeight:e.image.height;e.image.drawImageAtPosition(t,1,-i/2,0,i,n),t.restore()}return!1}}]),i}(zO),FO=function(t){zk(i,t);var e=BO(i);function i(){return Yd(this,i),e.apply(this,arguments)}return Kd(i,null,[{key:\"draw\",value:function(t,e){var i=[{x:0,y:0},{x:-1,y:.3},{x:-.9,y:0},{x:-1,y:-.3}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),i}(zO),AO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:-1,y:0},{x:0,y:.3},{x:-.4,y:0},{x:0,y:-.3}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),jO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i={x:-.4,y:0};zO.transform(i,e),t.strokeStyle=t.fillStyle,t.fillStyle=\"rgba(0, 0, 0, 0)\";var n=Math.PI,o=e.angle-n/2,r=e.angle+n/2;return t.beginPath(),t.arc(i.x,i.y,.4*e.length,o,r,!1),t.stroke(),!0}}]),t}(),RO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i={x:-.3,y:0};zO.transform(i,e),t.strokeStyle=t.fillStyle,t.fillStyle=\"rgba(0, 0, 0, 0)\";var n=Math.PI,o=e.angle+n/2,r=e.angle+3*n/2;return t.beginPath(),t.arc(i.x,i.y,.4*e.length,o,r,!1),t.stroke(),!0}}]),t}(),LO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:.02,y:0},{x:-1,y:.3},{x:-1,y:-.3}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),HO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:0,y:.3},{x:0,y:-.3},{x:-1,y:0}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),WO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i={x:-.4,y:0};return zO.transform(i,e),Nn(t,i.x,i.y,.4*e.length),!0}}]),t}(),qO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:0,y:.5},{x:0,y:-.5},{x:-.15,y:-.5},{x:-.15,y:.5}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),VO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:0,y:.3},{x:0,y:-.3},{x:-.6,y:-.3},{x:-.6,y:.3}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),UO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:0,y:0},{x:-.5,y:-.3},{x:-1,y:0},{x:-.5,y:.3}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),YO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i=[{x:-1,y:.3},{x:-.5,y:0},{x:-1,y:-.3},{x:0,y:0}];return zO.transform(i,e),zO.drawPath(t,i),!0}}]),t}(),XO=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"draw\",value:function(t,e){var i;switch(e.type&&(i=e.type.toLowerCase()),i){case\"image\":return NO.draw(t,e);case\"circle\":return WO.draw(t,e);case\"box\":return VO.draw(t,e);case\"crow\":return AO.draw(t,e);case\"curve\":return jO.draw(t,e);case\"diamond\":return UO.draw(t,e);case\"inv_curve\":return RO.draw(t,e);case\"triangle\":return LO.draw(t,e);case\"inv_triangle\":return HO.draw(t,e);case\"bar\":return qO.draw(t,e);case\"vee\":return YO.draw(t,e);default:return FO.draw(t,e)}}}]),t}();function GO(t,e){var i=bu(t);if(hd){var n=hd(t);e&&(n=Xf(n).call(n,(function(e){return bd(t,e).enumerable}))),i.push.apply(i,n)}return i}function KO(t){for(var e=1;e<arguments.length;e++){var i,n,o=null!=arguments[e]?arguments[e]:{};e%2?Fu(i=GO(Object(o),!0)).call(i,(function(e){$d(t,e,o[e])})):Pd?Ad(t,Pd(o)):Fu(n=GO(Object(o))).call(n,(function(e){Ud(t,e,bd(o,e))}))}return t}var $O=function(){function t(e,i,n){Yd(this,t),this._body=i,this._labelModule=n,this.color={},this.colorDirty=!0,this.hoverWidth=1.5,this.selectionWidth=2,this.setOptions(e),this.fromPoint=this.from,this.toPoint=this.to}return Kd(t,[{key:\"connect\",value:function(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to]}},{key:\"cleanup\",value:function(){return!1}},{key:\"setOptions\",value:function(t){this.options=t,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.id=this.options.id}},{key:\"drawLine\",value:function(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.getViaNode();t.strokeStyle=this.getColor(t,e),t.lineWidth=e.width,!1!==e.dashes?this._drawDashedLine(t,e,o):this._drawLine(t,e,o)}},{key:\"_drawLine\",value:function(t,e,i,n,o){if(this.from!=this.to)this._line(t,e,i,n,o);else{var r=Kc(this._getCircleData(t),3),s=r[0],a=r[1],h=r[2];this._circle(t,e,s,a,h)}}},{key:\"_drawDashedLine\",value:function(t,e,i,n,o){t.lineCap=\"round\";var r=lu(e.dashes)?e.dashes:[5,5];if(void 0!==t.setLineDash){if(t.save(),t.setLineDash(r),t.lineDashOffset=0,this.from!=this.to)this._line(t,e,i);else{var s=Kc(this._getCircleData(t),3),a=s[0],h=s[1],l=s[2];this._circle(t,e,a,h,l)}t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else{if(this.from!=this.to)Rn(t,this.from.x,this.from.y,this.to.x,this.to.y,r);else{var d=Kc(this._getCircleData(t),3),c=d[0],u=d[1],f=d[2];this._circle(t,e,c,u,f)}this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}}},{key:\"findBorderPosition\",value:function(t,e,i){return this.from!=this.to?this._findBorderPosition(t,e,i):this._findBorderPositionCircle(t,e,i)}},{key:\"findBorderPositions\",value:function(t){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,t),to:this._findBorderPosition(this.to,t)};var e,i=Kc(au(e=this._getCircleData(t)).call(e,0,2),2),n=i[0],o=i[1];return{from:this._findBorderPositionCircle(this.from,t,{x:n,y:o,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,t,{x:n,y:o,low:.6,high:.8,direction:1})}}},{key:\"_getCircleData\",value:function(t){var e=this.options.selfReference.size;void 0!==t&&void 0===this.from.shape.width&&this.from.shape.resize(t);var i=bE(t,this.options.selfReference.angle,e,this.from);return[i.x,i.y,e]}},{key:\"_pointOnCircle\",value:function(t,e,i,n){var o=2*n*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}}},{key:\"_findBorderPositionCircle\",value:function(t,e,i){var n,o=i.x,r=i.y,s=i.low,a=i.high,h=i.direction,l=this.options.selfReference.size,d=.5*(s+a),c=0;!0===this.options.arrowStrikethrough&&(-1===h?c=this.options.endPointOffset.from:1===h&&(c=this.options.endPointOffset.to));var u=0;do{d=.5*(s+a),n=this._pointOnCircle(o,r,l,d);var f=Math.atan2(t.y-n.y,t.x-n.x),p=t.distanceToBorder(e,f)+c-Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2));if(Math.abs(p)<.05)break;p>0?h>0?s=d:a=d:h>0?a=d:s=d,++u}while(s<=a&&u<10);return KO(KO({},n),{},{t:d})}},{key:\"getLineWidth\",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this._body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this._body.view.scale):Math.max(this.options.width,.3/this._body.view.scale)}},{key:\"getColor\",value:function(t,e){if(!1!==e.inheritsColor){if(\"both\"===e.inheritsColor&&this.from.id!==this.to.id){var i=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),n=this.from.options.color.highlight.border,o=this.to.options.color.highlight.border;return!1===this.from.selected&&!1===this.to.selected?(n=pm(this.from.options.color.border,e.opacity),o=pm(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?o=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(n=this.from.options.color.border),i.addColorStop(0,n),i.addColorStop(1,o),i}return\"to\"===e.inheritsColor?pm(this.to.options.color.border,e.opacity):pm(this.from.options.color.border,e.opacity)}return pm(e.color,e.opacity)}},{key:\"_circle\",value:function(t,e,i,n,o){this.enableShadow(t,e);var r=0,s=2*Math.PI;if(!this.options.selfReference.renderBehindTheNode){var a=this.options.selfReference.angle,h=this.options.selfReference.angle+Math.PI,l=this._findBorderPositionCircle(this.from,t,{x:i,y:n,low:a,high:h,direction:-1}),d=this._findBorderPositionCircle(this.from,t,{x:i,y:n,low:a,high:h,direction:1});r=Math.atan2(l.y-n,l.x-i),s=Math.atan2(d.y-n,d.x-i)}t.beginPath(),t.arc(i,n,o,r,s,!1),t.stroke(),this.disableShadow(t,e)}},{key:\"getDistanceToEdge\",value:function(t,e,i,n,o,r){if(this.from!=this.to)return this._getDistanceToEdge(t,e,i,n,o,r);var s=Kc(this._getCircleData(void 0),3),a=s[0],h=s[1],l=s[2],d=a-o,c=h-r;return Math.abs(Math.sqrt(d*d+c*c)-l)}},{key:\"_getDistanceToLine\",value:function(t,e,i,n,o,r){var s=i-t,a=n-e,h=((o-t)*s+(r-e)*a)/(s*s+a*a);h>1?h=1:h<0&&(h=0);var l=t+h*s-o,d=e+h*a-r;return Math.sqrt(l*l+d*d)}},{key:\"getArrowData\",value:function(t,e,i,n,o,r){var s,a,h,l,d,c,u,f=r.width;\"from\"===e?(h=this.from,l=this.to,d=r.fromArrowScale<0,c=Math.abs(r.fromArrowScale),u=r.fromArrowType):\"to\"===e?(h=this.to,l=this.from,d=r.toArrowScale<0,c=Math.abs(r.toArrowScale),u=r.toArrowType):(h=this.to,l=this.from,d=r.middleArrowScale<0,c=Math.abs(r.middleArrowScale),u=r.middleArrowType);var p=15*c+3*f;if(h!=l){var v=p/IO(h.x-l.x,h.y-l.y);if(\"middle\"!==e)if(!0===this.options.smooth.enabled){var g=this._findBorderPosition(h,t,{via:i}),y=this.getPoint(g.t+v*(\"from\"===e?1:-1),i);s=Math.atan2(g.y-y.y,g.x-y.x),a=g}else s=Math.atan2(h.y-l.y,h.x-l.x),a=this._findBorderPosition(h,t);else{var m=(d?-v:v)/2,b=this.getPoint(.5+m,i),w=this.getPoint(.5-m,i);s=Math.atan2(b.y-w.y,b.x-w.x),a=this.getPoint(.5,i)}}else{var k=Kc(this._getCircleData(t),3),_=k[0],x=k[1],E=k[2];if(\"from\"===e){var O=this.options.selfReference.angle,C=this.options.selfReference.angle+Math.PI,S=this._findBorderPositionCircle(this.from,t,{x:_,y:x,low:O,high:C,direction:-1});s=-2*S.t*Math.PI+1.5*Math.PI+.1*Math.PI,a=S}else if(\"to\"===e){var T=this.options.selfReference.angle,M=this.options.selfReference.angle+Math.PI,P=this._findBorderPositionCircle(this.from,t,{x:_,y:x,low:T,high:M,direction:1});s=-2*P.t*Math.PI+1.5*Math.PI-1.1*Math.PI,a=P}else{var D=this.options.selfReference.angle/(2*Math.PI);a=this._pointOnCircle(_,x,E,D),s=-2*D*Math.PI+1.5*Math.PI+.1*Math.PI}}return{point:a,core:{x:a.x-.9*p*Math.cos(s),y:a.y-.9*p*Math.sin(s)},angle:s,length:p,type:u}}},{key:\"drawArrowHead\",value:function(t,e,i,n,o){t.strokeStyle=this.getColor(t,e),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,XO.draw(t,o)&&(this.enableShadow(t,e),jv(t).call(t),this.disableShadow(t,e))}},{key:\"enableShadow\",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:\"disableShadow\",value:function(t,e){!0===e.shadow&&(t.shadowColor=\"rgba(0,0,0,0)\",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}},{key:\"drawBackground\",value:function(t,e){if(!1!==e.background){var i={strokeStyle:t.strokeStyle,lineWidth:t.lineWidth,dashes:t.dashes};t.strokeStyle=e.backgroundColor,t.lineWidth=e.backgroundSize,this.setStrokeDashed(t,e.backgroundDashes),t.stroke(),t.strokeStyle=i.strokeStyle,t.lineWidth=i.lineWidth,t.dashes=i.dashes,this.setStrokeDashed(t,e.dashes)}}},{key:\"setStrokeDashed\",value:function(t,e){if(!1!==e)if(void 0!==t.setLineDash){var i=lu(e)?e:[5,5];t.setLineDash(i)}else console.warn(\"setLineDash is not supported in this browser. The dashed stroke cannot be used.\");else void 0!==t.setLineDash?t.setLineDash([]):console.warn(\"setLineDash is not supported in this browser. The dashed stroke cannot be used.\")}}]),t}();function ZO(t,e){var i=bu(t);if(hd){var n=hd(t);e&&(n=Xf(n).call(n,(function(e){return bd(t,e).enumerable}))),i.push.apply(i,n)}return i}function QO(t){for(var e=1;e<arguments.length;e++){var i,n,o=null!=arguments[e]?arguments[e]:{};e%2?Fu(i=ZO(Object(o),!0)).call(i,(function(e){$d(t,e,o[e])})):Pd?Ad(t,Pd(o)):Fu(n=ZO(Object(o))).call(n,(function(e){Ud(t,e,bd(o,e))}))}return t}function JO(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var tC=function(t){zk(i,t);var e=JO(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"_findBorderPositionBezier\",value:function(t,e){var i,n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),r=10,s=.2,a=!1,h=1,l=0,d=this.to,c=this.options.endPointOffset?this.options.endPointOffset.to:0;t.id===this.from.id&&(d=this.from,a=!0,c=this.options.endPointOffset?this.options.endPointOffset.from:0),!1===this.options.arrowStrikethrough&&(c=0);var u=0;do{n=.5*(l+h),i=this.getPoint(n,o);var f=Math.atan2(d.y-i.y,d.x-i.x),p=d.distanceToBorder(e,f)+c,v=Math.sqrt(Math.pow(i.x-d.x,2)+Math.pow(i.y-d.y,2)),g=p-v;if(Math.abs(g)<s)break;g<0?!1===a?l=n:h=n:!1===a?h=n:l=n,++u}while(l<=h&&u<r);return QO(QO({},i),{},{t:n})}},{key:\"_getDistanceToBezierEdge\",value:function(t,e,i,n,o,r,s){var a,h,l,d,c,u=1e9,f=t,p=e;for(h=1;h<10;h++)l=.1*h,d=Math.pow(1-l,2)*t+2*l*(1-l)*s.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*s.y+Math.pow(l,2)*n,h>0&&(u=(a=this._getDistanceToLine(f,p,d,c,o,r))<u?a:u),f=d,p=c;return u}},{key:\"_bezierCurve\",value:function(t,e,i,n){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),null!=i&&null!=i.x?null!=n&&null!=n.x?t.bezierCurveTo(i.x,i.y,n.x,n.y,this.toPoint.x,this.toPoint.y):t.quadraticCurveTo(i.x,i.y,this.toPoint.x,this.toPoint.y):t.lineTo(this.toPoint.x,this.toPoint.y),this.drawBackground(t,e),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:\"getViaNode\",value:function(){return this._getViaCoordinates()}}]),i}($O);function eC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var iC=function(t){zk(i,t);var e=eC(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o)).via=r.via,r._boundFunction=function(){r.positionBezierNode()},r._body.emitter.on(\"_repositionBezierNodes\",r._boundFunction),r}return Kd(i,[{key:\"setOptions\",value:function(t){SO(Ak(i.prototype),\"setOptions\",this).call(this,t);var e=!1;this.options.physics!==t.physics&&(e=!0),this.options=t,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),!0===e&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}},{key:\"connect\",value:function(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],void 0===this.from||void 0===this.to||!1===this.options.physics||this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}},{key:\"cleanup\",value:function(){return this._body.emitter.off(\"_repositionBezierNodes\",this._boundFunction),void 0!==this.via&&(delete this._body.nodes[this.via.id],this.via=void 0,!0)}},{key:\"setupSupportNode\",value:function(){if(void 0===this.via){var t=\"edgeId:\"+this.id,e=this._body.functions.createNode({id:t,shape:\"circle\",physics:!0,hidden:!0});this._body.nodes[t]=e,this.via=e,this.via.parentEdgeId=this.id,this.positionBezierNode()}}},{key:\"positionBezierNode\",value:function(){void 0!==this.via&&void 0!==this.from&&void 0!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):void 0!==this.via&&(this.via.x=0,this.via.y=0)}},{key:\"_line\",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:\"_getViaCoordinates\",value:function(){return this.via}},{key:\"getViaNode\",value:function(){return this.via}},{key:\"getPoint\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.via;if(this.from===this.to){var i=this._getCircleData(),n=Kc(i,3),o=n[0],r=n[1],s=n[2],a=2*Math.PI*(1-t);return{x:o+s*Math.sin(a),y:r+s-s*(1-Math.cos(a))}}return{x:Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.toPoint.x,y:Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.toPoint.y}}},{key:\"_findBorderPosition\",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:\"_getDistanceToEdge\",value:function(t,e,i,n,o,r){return this._getDistanceToBezierEdge(t,e,i,n,o,r,this.via)}}]),i}(tC);function nC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var oC=function(t){zk(i,t);var e=nC(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"_line\",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:\"getViaNode\",value:function(){return this._getViaCoordinates()}},{key:\"_getViaCoordinates\",value:function(){var t,e,i=this.options.smooth.roundness,n=this.options.smooth.type,o=Math.abs(this.from.x-this.to.x),r=Math.abs(this.from.y-this.to.y);if(\"discrete\"===n||\"diagonalCross\"===n){var s,a;s=a=o<=r?i*r:i*o,this.from.x>this.to.x&&(s=-s),this.from.y>=this.to.y&&(a=-a);var h=this.from.x+s,l=this.from.y+a;return\"discrete\"===n&&(o<=r?h=o<i*r?this.from.x:h:l=r<i*o?this.from.y:l),{x:h,y:l}}if(\"straightCross\"===n){var d=(1-i)*o,c=(1-i)*r;return o<=r?(d=0,this.from.y<this.to.y&&(c=-c)):(this.from.x<this.to.x&&(d=-d),c=0),{x:this.to.x+d,y:this.to.y+c}}if(\"horizontal\"===n){var u=(1-i)*o;return this.from.x<this.to.x&&(u=-u),{x:this.to.x+u,y:this.from.y}}if(\"vertical\"===n){var f=(1-i)*r;return this.from.y<this.to.y&&(f=-f),{x:this.from.x,y:this.to.y+f}}if(\"curvedCW\"===n){o=this.to.x-this.from.x,r=this.from.y-this.to.y;var p=Math.sqrt(o*o+r*r),v=Math.PI,g=(Math.atan2(r,o)+(.5*i+.5)*v)%(2*v);return{x:this.from.x+(.5*i+.5)*p*Math.sin(g),y:this.from.y+(.5*i+.5)*p*Math.cos(g)}}if(\"curvedCCW\"===n){o=this.to.x-this.from.x,r=this.from.y-this.to.y;var y=Math.sqrt(o*o+r*r),m=Math.PI,b=(Math.atan2(r,o)+(.5*-i+.5)*m)%(2*m);return{x:this.from.x+(.5*i+.5)*y*Math.sin(b),y:this.from.y+(.5*i+.5)*y*Math.cos(b)}}t=e=o<=r?i*r:i*o,this.from.x>this.to.x&&(t=-t),this.from.y>=this.to.y&&(e=-e);var w=this.from.x+t,k=this.from.y+e;return o<=r?w=this.from.x<=this.to.x?this.to.x<w?this.to.x:w:this.to.x>w?this.to.x:w:k=this.from.y>=this.to.y?this.to.y>k?this.to.y:k:this.to.y<k?this.to.y:k,{x:w,y:k}}},{key:\"_findBorderPosition\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:\"_getDistanceToEdge\",value:function(t,e,i,n,o,r){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,n,o,r,s)}},{key:\"getPoint\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t,n=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,o=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:n,y:o}}}]),i}(tC);function rC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var sC=function(t){zk(i,t);var e=rC(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"_getDistanceToBezierEdge2\",value:function(t,e,i,n,o,r,s,a){for(var h=1e9,l=t,d=e,c=[0,0,0,0],u=1;u<10;u++){var f=.1*u;c[0]=Math.pow(1-f,3),c[1]=3*f*Math.pow(1-f,2),c[2]=3*Math.pow(f,2)*(1-f),c[3]=Math.pow(f,3);var p=c[0]*t+c[1]*s.x+c[2]*a.x+c[3]*i,v=c[0]*e+c[1]*s.y+c[2]*a.y+c[3]*n;if(u>0){var g=this._getDistanceToLine(l,d,p,v,o,r);h=g<h?g:h}l=p,d=v}return h}}]),i}(tC);function aC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var hC=function(t){zk(i,t);var e=aC(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"_line\",value:function(t,e,i){var n=i[0],o=i[1];this._bezierCurve(t,e,n,o)}},{key:\"_getViaCoordinates\",value:function(){var t,e,i,n,o=this.from.x-this.to.x,r=this.from.y-this.to.y,s=this.options.smooth.roundness;return(Math.abs(o)>Math.abs(r)||!0===this.options.smooth.forceDirection||\"horizontal\"===this.options.smooth.forceDirection)&&\"vertical\"!==this.options.smooth.forceDirection?(e=this.from.y,n=this.to.y,t=this.from.x-s*o,i=this.to.x+s*o):(e=this.from.y-s*r,n=this.to.y+s*r,t=this.from.x,i=this.to.x),[{x:t,y:e},{x:i,y:n}]}},{key:\"getViaNode\",value:function(){return this._getViaCoordinates()}},{key:\"_findBorderPosition\",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:\"_getDistanceToEdge\",value:function(t,e,i,n,o,r){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),a=Kc(s,2),h=a[0],l=a[1];return this._getDistanceToBezierEdge2(t,e,i,n,o,r,h,l)}},{key:\"getPoint\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=Kc(e,2),n=i[0],o=i[1],r=t,s=[Math.pow(1-r,3),3*r*Math.pow(1-r,2),3*Math.pow(r,2)*(1-r),Math.pow(r,3)],a=s[0]*this.fromPoint.x+s[1]*n.x+s[2]*o.x+s[3]*this.toPoint.x,h=s[0]*this.fromPoint.y+s[1]*n.y+s[2]*o.y+s[3]*this.toPoint.y;return{x:a,y:h}}}]),i}(sC);function lC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var dC=function(t){zk(i,t);var e=lC(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"_line\",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:\"getViaNode\",value:function(){}},{key:\"getPoint\",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:\"_findBorderPosition\",value:function(t,e){var i=this.to,n=this.from;t.id===this.from.id&&(i=this.from,n=this.to);var o=Math.atan2(i.y-n.y,i.x-n.x),r=i.x-n.x,s=i.y-n.y,a=Math.sqrt(r*r+s*s),h=(a-t.distanceToBorder(e,o))/a;return{x:(1-h)*n.x+h*i.x,y:(1-h)*n.y+h*i.y,t:0}}},{key:\"_getDistanceToEdge\",value:function(t,e,i,n,o,r){return this._getDistanceToLine(t,e,i,n,o,r)}}]),i}($O),cC=function(){function t(e,i,n,o,r){if(Yd(this,t),void 0===i)throw new Error(\"No body provided\");this.options=Cm(o),this.globalOptions=o,this.defaultOptions=r,this.body=i,this.imagelist=n,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new OE(this.body,this.options,!0),this.setOptions(e)}return Kd(t,[{key:\"setOptions\",value:function(e){if(e){var i=void 0!==e.physics&&this.options.physics!==e.physics||void 0!==e.hidden&&(this.options.hidden||!1)!==(e.hidden||!1)||void 0!==e.from&&this.options.from!==e.from||void 0!==e.to&&this.options.to!==e.to;t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=lE(e.value));var n=[e,this.options,this.defaultOptions];return this.chooser=gE(\"edge\",n),this.updateLabelModule(e),i=this.updateEdgeType()||i,this._setInteractionWidths(),this.connect(),i}}},{key:\"getFormattingValues\",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,n=this.options.color.inherit,o={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:n?void 0:this.options.color.color,inheritsColor:n,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var r=this.options.selectionWidth;\"function\"==typeof r?o.width=r(o.width):\"number\"==typeof r&&(o.width+=r),o.width=Math.max(o.width,.3/this.body.view.scale),o.color=this.options.color.highlight,o.shadow=this.options.shadow.enabled}else if(this.hover){var s=this.options.hoverWidth;\"function\"==typeof s?o.width=s(o.width):\"number\"==typeof s&&(o.width+=s),o.width=Math.max(o.width,.3/this.body.view.scale),o.color=this.options.color.hover,o.shadow=this.options.shadow.enabled}}else\"function\"==typeof this.chooser&&(this.chooser(o,this.options.id,this.selected,this.hover),void 0!==o.color&&(o.inheritsColor=!1),!1===o.shadow&&(o.shadowColor===this.options.shadow.color&&o.shadowSize===this.options.shadow.size&&o.shadowX===this.options.shadow.x&&o.shadowY===this.options.shadow.y||(o.shadow=!0)));else o.shadow=this.options.shadow.enabled,o.width=Math.max(o.width,.3/this.body.view.scale);return o}},{key:\"updateLabelModule\",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:\"updateEdgeType\",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof iC&&!0===t.enabled&&\"dynamic\"===t.type||this.edgeType instanceof hC&&!0===t.enabled&&\"cubicBezier\"===t.type||this.edgeType instanceof oC&&!0===t.enabled&&\"dynamic\"!==t.type&&\"cubicBezier\"!==t.type||this.edgeType instanceof dC&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?\"dynamic\"===t.type?(e=!0,this.edgeType=new iC(this.options,this.body,this.labelModule)):\"cubicBezier\"===t.type?this.edgeType=new hC(this.options,this.body,this.labelModule):this.edgeType=new oC(this.options,this.body,this.labelModule):this.edgeType=new dC(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:\"connect\",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:\"disconnect\",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:\"getTitle\",value:function(){return this.title}},{key:\"isSelected\",value:function(){return this.selected}},{key:\"getValue\",value:function(){return this.options.value}},{key:\"setValueRange\",value:function(t,e,i){if(void 0!==this.options.value){var n=this.options.scaling.customScalingFunction(t,e,i,this.options.value),o=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var r=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*r}this.options.width=this.options.scaling.min+n*o}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:\"_setInteractionWidths\",value:function(){\"function\"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,\"function\"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:\"draw\",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode();this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawLabel(t,i)}}},{key:\"drawArrows\",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),n={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(n.from=this.edgeType.getArrowData(t,\"from\",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=n.from.core),e.fromArrowSrc&&(n.from.image=this.imagelist.load(e.fromArrowSrc)),e.fromArrowImageWidth&&(n.from.imageWidth=e.fromArrowImageWidth),e.fromArrowImageHeight&&(n.from.imageHeight=e.fromArrowImageHeight)),e.toArrow&&(n.to=this.edgeType.getArrowData(t,\"to\",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=n.to.core),e.toArrowSrc&&(n.to.image=this.imagelist.load(e.toArrowSrc)),e.toArrowImageWidth&&(n.to.imageWidth=e.toArrowImageWidth),e.toArrowImageHeight&&(n.to.imageHeight=e.toArrowImageHeight)),e.middleArrow&&(n.middle=this.edgeType.getArrowData(t,\"middle\",i,this.selected,this.hover,e),e.middleArrowSrc&&(n.middle.image=this.imagelist.load(e.middleArrowSrc)),e.middleArrowImageWidth&&(n.middle.imageWidth=e.middleArrowImageWidth),e.middleArrowImageHeight&&(n.middle.imageHeight=e.middleArrowImageHeight)),e.fromArrow&&this.edgeType.drawArrowHead(t,e,this.selected,this.hover,n.from),e.middleArrow&&this.edgeType.drawArrowHead(t,e,this.selected,this.hover,n.middle),e.toArrow&&this.edgeType.drawArrowHead(t,e,this.selected,this.hover,n.to)}}},{key:\"drawLabel\",value:function(t,e){if(void 0!==this.options.label){var i,n=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),n.id!=o.id){this.labelModule.pointToSelf=!1,i=this.edgeType.getPoint(.5,e),t.save();var r=this._getRotation(t);0!=r.angle&&(t.translate(r.x,r.y),t.rotate(r.angle)),this.labelModule.draw(t,i.x,i.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var s=bE(t,this.options.selfReference.angle,this.options.selfReference.size,n);i=this._pointOnCircle(s.x,s.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(t,i.x,i.y,this.selected,this.hover)}}}},{key:\"getItemsOnPoint\",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();yE(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var n={left:t.x,top:t.y};return this.isOverlappingWith(n)&&e.push({edgeId:this.id}),e}},{key:\"isOverlappingWith\",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,n=this.to.x,o=this.to.y,r=t.left,s=t.top;return this.edgeType.getDistanceToEdge(e,i,n,o,r,s)<10}return!1}},{key:\"_getRotation\",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var n={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return n;if(\"horizontal\"===this.options.font.align)return n;var o=this.from.y-this.to.y,r=this.from.x-this.to.x,s=Math.atan2(o,r);return(s<-1&&r<0||s>0&&r<0)&&(s+=Math.PI),n.angle=s,n}},{key:\"_pointOnCircle\",value:function(t,e,i,n){return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:\"select\",value:function(){this.selected=!0}},{key:\"unselect\",value:function(){this.selected=!1}},{key:\"cleanup\",value:function(){return this.edgeType.cleanup()}},{key:\"remove\",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:\"endPointsValid\",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:\"parseOptions\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=[\"endPointOffset\",\"arrowStrikethrough\",\"id\",\"from\",\"hidden\",\"hoverWidth\",\"labelHighlightBold\",\"length\",\"line\",\"opacity\",\"physics\",\"scaling\",\"selectionWidth\",\"selfReferenceSize\",\"selfReference\",\"to\",\"title\",\"value\",\"width\",\"font\",\"chosen\",\"widthConstraint\"];if(em(r,t,e,i),void 0!==e.endPointOffset&&void 0!==e.endPointOffset.from&&(ok(e.endPointOffset.from)?t.endPointOffset.from=e.endPointOffset.from:(t.endPointOffset.from=void 0!==n.endPointOffset.from?n.endPointOffset.from:0,console.error(\"endPointOffset.from is not a valid number\"))),void 0!==e.endPointOffset&&void 0!==e.endPointOffset.to&&(ok(e.endPointOffset.to)?t.endPointOffset.to=e.endPointOffset.to:(t.endPointOffset.to=void 0!==n.endPointOffset.to?n.endPointOffset.to:0,console.error(\"endPointOffset.to is not a valid number\"))),mE(e.label)?t.label=e.label:mE(t.label)||(t.label=void 0),Sm(t,e,\"smooth\",n),Sm(t,e,\"shadow\",n),Sm(t,e,\"background\",n),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=Kp(n.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),Sm(t.scaling,e.scaling,\"label\",n.scaling)):!0===i&&null===e.scaling&&(t.scaling=Kp(n.scaling)),void 0!==e.arrows&&null!==e.arrows)if(\"string\"==typeof e.arrows){var s=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=Fp(s).call(s,\"to\"),t.arrows.middle.enabled=-1!=Fp(s).call(s,\"middle\"),t.arrows.from.enabled=-1!=Fp(s).call(s,\"from\")}else{if(\"object\"!==Qc(e.arrows))throw new Error(\"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\"+gv(e.arrows));Sm(t.arrows,e.arrows,\"to\",n.arrows),Sm(t.arrows,e.arrows,\"middle\",n.arrows),Sm(t.arrows,e.arrows,\"from\",n.arrows)}else!0===i&&null===e.arrows&&(t.arrows=Kp(n.arrows));if(void 0!==e.color&&null!==e.color){var a=$y(e.color)?{color:e.color,highlight:e.color,hover:e.color,inherit:!1,opacity:1}:e.color,h=t.color;if(o)nm(h,n.color,!1,i);else for(var l in h)Object.prototype.hasOwnProperty.call(h,l)&&delete h[l];if($y(h))h.color=h,h.highlight=h,h.hover=h,h.inherit=!1,void 0===a.opacity&&(h.opacity=1);else{var d=!1;void 0!==a.color&&(h.color=a.color,d=!0),void 0!==a.highlight&&(h.highlight=a.highlight,d=!0),void 0!==a.hover&&(h.hover=a.hover,d=!0),void 0!==a.inherit&&(h.inherit=a.inherit),void 0!==a.opacity&&(h.opacity=Math.min(1,Math.max(0,a.opacity))),!0===d?h.inherit=!1:void 0===h.inherit&&(h.inherit=\"from\")}}else!0===i&&null===e.color&&(t.color=Cm(n.color));!0===i&&null===e.font&&(t.font=Cm(n.font)),Object.prototype.hasOwnProperty.call(e,\"selfReferenceSize\")&&(console.warn(\"The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}\"),t.selfReference.size=e.selfReferenceSize)}}]),t}(),uC=function(){function t(e,i,n){var o,r=this;Yd(this,t),this.body=e,this.images=i,this.groups=n,this.body.functions.createEdge=zn(o=this.create).call(o,this),this.edgesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items)},remove:function(t,e){r.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:\"arrow\"},middle:{enabled:!1,scaleFactor:1,type:\"arrow\"},from:{enabled:!1,scaleFactor:1,type:\"arrow\"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:\"#848484\",highlight:\"#848484\",hover:\"#848484\",inherit:\"from\",opacity:1},dashes:!1,font:{color:\"#343434\",size:14,face:\"arial\",background:\"none\",strokeWidth:2,strokeColor:\"#ffffff\",align:\"horizontal\",multi:!1,vadjust:0,bold:{mod:\"bold\"},boldital:{mod:\"bold italic\"},ital:{mod:\"italic\"},mono:{mod:\"\",size:15,face:\"courier new\",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,n){if(e===t)return.5;var o=1/(e-t);return Math.max(0,(n-t)*o)}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:10,x:5,y:5},background:{enabled:!1,color:\"rgba(111,111,111,1)\",size:10,dashes:!1},smooth:{enabled:!0,type:\"dynamic\",forceDirection:\"none\",roundness:.5},title:void 0,width:1,value:void 0},nm(this.options,this.defaultOptions),this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t,e,i=this;this.body.emitter.on(\"_forceDisableDynamicCurves\",(function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];\"dynamic\"===t&&(t=\"continuous\");var n=!1;for(var o in i.body.edges)if(Object.prototype.hasOwnProperty.call(i.body.edges,o)){var r=i.body.edges[o],s=i.body.data.edges.get(o);if(null!=s){var a=s.smooth;void 0!==a&&!0===a.enabled&&\"dynamic\"===a.type&&(void 0===t?r.setOptions({smooth:!1}):r.setOptions({smooth:{type:t}}),n=!0)}}!0===e&&!0===n&&i.body.emitter.emit(\"_dataChanged\")})),this.body.emitter.on(\"_dataUpdated\",(function(){i.reconnectEdges()})),this.body.emitter.on(\"refreshEdges\",zn(t=this.refresh).call(t,this)),this.body.emitter.on(\"refresh\",zn(e=this.refresh).call(e,this)),this.body.emitter.on(\"destroy\",(function(){hm(i.edgesListeners,(function(t,e){i.body.data.edges&&i.body.data.edges.off(e,t)})),delete i.body.functions.createEdge,delete i.edgesListeners.add,delete i.edgesListeners.update,delete i.edgesListeners.remove,delete i.edgesListeners}))}},{key:\"setOptions\",value:function(t){if(void 0!==t){cC.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var n in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,n)&&this.body.edges[n].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit(\"_dataChanged\")}}},{key:\"setData\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.body.data.edges;if(Qx(\"id\",t))this.body.data.edges=t;else if(lu(t))this.body.data.edges=new Kx,this.body.data.edges.add(t);else{if(t)throw new TypeError(\"Array or DataSet expected\");this.body.data.edges=new Kx}if(n&&hm(this.edgesListeners,(function(t,e){n.off(e,t)})),this.body.edges={},this.body.data.edges){hm(this.edgesListeners,(function(t,i){e.body.data.edges.on(i,t)}));var o=this.body.data.edges.getIds();this.add(o,!0)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\"),!1===i&&this.body.emitter.emit(\"_dataChanged\")}},{key:\"add\",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,n=this.body.data.edges,o=0;o<t.length;o++){var r=t[o],s=i[r];s&&s.disconnect();var a=n.get(r,{showInternalIds:!0});i[r]=this.create(a)}this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\"),!1===e&&this.body.emitter.emit(\"_dataChanged\")}},{key:\"update\",value:function(t){for(var e=this.body.edges,i=this.body.data.edges,n=!1,o=0;o<t.length;o++){var r=t[o],s=i.get(r),a=e[r];void 0!==a?(a.disconnect(),n=a.setOptions(s)||n,a.connect()):(this.body.edges[r]=this.create(s),n=!0)}!0===n?(this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\"),this.body.emitter.emit(\"_dataChanged\")):this.body.emitter.emit(\"_dataUpdated\")}},{key:\"remove\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;hm(t,(function(t){var e=i[t];void 0!==e&&e.remove()})),e&&this.body.emitter.emit(\"_dataChanged\")}}},{key:\"refresh\",value:function(){var t=this;hm(this.body.edges,(function(e,i){var n=t.body.data.edges.get(i);void 0!==n&&e.setOptions(n)}))}},{key:\"create\",value:function(t){return new cC(t,this.body,this.images,this.options,this.defaultOptions)}},{key:\"reconnectEdges\",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t].edges=[]);for(t in i)if(Object.prototype.hasOwnProperty.call(i,t)){var n=i[t];n.from=null,n.to=null,n.connect()}}},{key:\"getConnectedNodes\",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:\"_updateState\",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:\"_removeInvalidEdges\",value:function(){var t=this,e=[];hm(this.body.edges,(function(i,n){var o=t.body.nodes[i.toId],r=t.body.nodes[i.fromId];void 0!==o&&!0===o.isCluster||void 0!==r&&!0===r.isCluster||void 0!==o&&void 0!==r||e.push(n)})),this.remove(e,!1)}},{key:\"_addMissingEdges\",value:function(){var t=this.body.data.edges;if(null!=t){var e=this.body.edges,i=[];Fu(t).call(t,(function(t,n){void 0===e[n]&&i.push(n)})),this.add(i,!0)}}}]),t}(),fC=function(){function t(e,i,n){Yd(this,t),this.body=e,this.physicsBody=i,this.barnesHutTree,this.setOptions(n),this._rng=jy(\"BARNES HUT SOLVER\")}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:\"solve\",value:function(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){var t,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,n=i.length,o=this._formBarnesHutTree(e,i);this.barnesHutTree=o;for(var r=0;r<n;r++)(t=e[i[r]]).options.mass>0&&this._getForceContributions(o.root,t)}}},{key:\"_getForceContributions\",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:\"_getForceContribution\",value:function(t,e){if(t.childrenCount>0){var i=t.centerOfMass.x-e.x,n=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+n*n);o*t.calcSize>this.thetaInversed?this._calculateForces(o,i,n,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(o,i,n,e,t)}}},{key:\"_calculateForces\",value:function(t,e,i,n,o){0===t&&(e=t=.1),this.overlapAvoidanceFactor<1&&n.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,t-n.shape.radius));var r=this.options.gravitationalConstant*o.mass*n.options.mass/Math.pow(t,3),s=e*r,a=i*r;this.physicsBody.forces[n.id].x+=s,this.physicsBody.forces[n.id].y+=a}},{key:\"_formBarnesHutTree\",value:function(t,e){for(var i,n=e.length,o=t[e[0]].x,r=t[e[0]].y,s=t[e[0]].x,a=t[e[0]].y,h=1;h<n;h++){var l=t[e[h]],d=l.x,c=l.y;l.options.mass>0&&(d<o&&(o=d),d>s&&(s=d),c<r&&(r=c),c>a&&(a=c))}var u=Math.abs(s-o)-Math.abs(a-r);u>0?(r-=.5*u,a+=.5*u):(o+=.5*u,s-=.5*u);var f=Math.max(1e-5,Math.abs(s-o)),p=.5*f,v=.5*(o+s),g=.5*(r+a),y={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:v-p,maxX:v+p,minY:g-p,maxY:g+p},size:f,calcSize:1/f,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(y.root);for(var m=0;m<n;m++)(i=t[e[m]]).options.mass>0&&this._placeInTree(y.root,i);return y}},{key:\"_updateBranchMass\",value:function(t,e){var i=t.centerOfMass,n=t.mass+e.options.mass,o=1/n;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=o,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=o,t.mass=n;var r=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidth<r?r:t.maxWidth}},{key:\"_placeInTree\",value:function(t,e,i){1==i&&void 0!==i||this._updateBranchMass(t,e);var n,o=t.children.NW.range;n=o.maxX>e.x?o.maxY>e.y?\"NW\":\"SW\":o.maxY>e.y?\"NE\":\"SE\",this._placeInRegion(t,e,n)}},{key:\"_placeInRegion\",value:function(t,e,i){var n=t.children[i];switch(n.childrenCount){case 0:n.children.data=e,n.childrenCount=1,this._updateBranchMass(n,e);break;case 1:n.children.data.x===e.x&&n.children.data.y===e.y?(e.x+=this._rng(),e.y+=this._rng()):(this._splitBranch(n),this._placeInTree(n,e));break;case 4:this._placeInTree(n,e)}}},{key:\"_splitBranch\",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,\"NW\"),this._insertRegion(t,\"NE\"),this._insertRegion(t,\"SW\"),this._insertRegion(t,\"SE\"),null!=e&&this._placeInTree(t,e)}},{key:\"_insertRegion\",value:function(t,e){var i,n,o,r,s=.5*t.size;switch(e){case\"NW\":i=t.range.minX,n=t.range.minX+s,o=t.range.minY,r=t.range.minY+s;break;case\"NE\":i=t.range.minX+s,n=t.range.maxX,o=t.range.minY,r=t.range.minY+s;break;case\"SW\":i=t.range.minX,n=t.range.minX+s,o=t.range.minY+s,r=t.range.maxY;break;case\"SE\":i=t.range.minX+s,n=t.range.maxX,o=t.range.minY+s,r=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:n,minY:o,maxY:r},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:\"_debug\",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:\"_drawBranch\",value:function(t,e,i){void 0===i&&(i=\"#FF0000\"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}(),pC=function(){function t(e,i,n){Yd(this,t),this._rng=jy(\"REPULSION SOLVER\"),this.body=e,this.physicsBody=i,this.setOptions(n)}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t}},{key:\"solve\",value:function(){for(var t,e,i,n,o,r,s,a,h=this.body.nodes,l=this.physicsBody.physicsNodeIndices,d=this.physicsBody.forces,c=this.options.nodeDistance,u=-2/3/c,f=0;f<l.length-1;f++){s=h[l[f]];for(var p=f+1;p<l.length;p++)t=(a=h[l[p]]).x-s.x,e=a.y-s.y,0===(i=Math.sqrt(t*t+e*e))&&(t=i=.1*this._rng()),i<2*c&&(r=i<.5*c?1:u*i+1.3333333333333333,n=t*(r/=i),o=e*r,d[s.id].x-=n,d[s.id].y-=o,d[a.id].x+=n,d[a.id].y+=o)}}}]),t}(),vC=function(){function t(e,i,n){Yd(this,t),this.body=e,this.physicsBody=i,this.setOptions(n)}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t,this.overlapAvoidanceFactor=Math.max(0,Math.min(1,this.options.avoidOverlap||0))}},{key:\"solve\",value:function(){for(var t=this.body.nodes,e=this.physicsBody.physicsNodeIndices,i=this.physicsBody.forces,n=this.options.nodeDistance,o=0;o<e.length-1;o++)for(var r=t[e[o]],s=o+1;s<e.length;s++){var a=t[e[s]];if(r.level===a.level){var h=n+this.overlapAvoidanceFactor*((r.shape.radius||0)/2+(a.shape.radius||0)/2),l=a.x-r.x,d=a.y-r.y,c=Math.sqrt(l*l+d*d),u=void 0;u=c<h?-Math.pow(.05*c,2)+Math.pow(.05*h,2):0,0!==c&&(u/=c);var f=l*u,p=d*u;i[r.id].x-=f,i[r.id].y-=p,i[a.id].x+=f,i[a.id].y+=p}}}}]),t}(),gC=function(){function t(e,i,n){Yd(this,t),this.body=e,this.physicsBody=i,this.setOptions(n)}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t}},{key:\"solve\",value:function(){for(var t,e,i,n,o,r=this.physicsBody.physicsEdgeIndices,s=this.body.edges,a=0;a<r.length;a++)!0===(e=s[r[a]]).connected&&e.toId!==e.fromId&&void 0!==this.body.nodes[e.toId]&&void 0!==this.body.nodes[e.fromId]&&(void 0!==e.edgeType.via?(t=void 0===e.options.length?this.options.springLength:e.options.length,i=e.to,n=e.edgeType.via,o=e.from,this._calculateSpringForce(i,n,.5*t),this._calculateSpringForce(n,o,.5*t)):(t=void 0===e.options.length?1.5*this.options.springLength:e.options.length,this._calculateSpringForce(e.from,e.to,t)))}},{key:\"_calculateSpringForce\",value:function(t,e,i){var n=t.x-e.x,o=t.y-e.y,r=Math.max(Math.sqrt(n*n+o*o),.01),s=this.options.springConstant*(i-r)/r,a=n*s,h=o*s;void 0!==this.physicsBody.forces[t.id]&&(this.physicsBody.forces[t.id].x+=a,this.physicsBody.forces[t.id].y+=h),void 0!==this.physicsBody.forces[e.id]&&(this.physicsBody.forces[e.id].x-=a,this.physicsBody.forces[e.id].y-=h)}}]),t}(),yC=function(){function t(e,i,n){Yd(this,t),this.body=e,this.physicsBody=i,this.setOptions(n)}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t}},{key:\"solve\",value:function(){for(var t,e,i,n,o,r,s,a,h,l,d=this.body.edges,c=.5,u=this.physicsBody.physicsEdgeIndices,f=this.physicsBody.physicsNodeIndices,p=this.physicsBody.forces,v=0;v<f.length;v++){var g=f[v];p[g].springFx=0,p[g].springFy=0}for(var y=0;y<u.length;y++)!0===(e=d[u[y]]).connected&&(t=void 0===e.options.length?this.options.springLength:e.options.length,i=e.from.x-e.to.x,n=e.from.y-e.to.y,a=0===(a=Math.sqrt(i*i+n*n))?.01:a,o=i*(s=this.options.springConstant*(t-a)/a),r=n*s,e.to.level!=e.from.level?(void 0!==p[e.toId]&&(p[e.toId].springFx-=o,p[e.toId].springFy-=r),void 0!==p[e.fromId]&&(p[e.fromId].springFx+=o,p[e.fromId].springFy+=r)):(void 0!==p[e.toId]&&(p[e.toId].x-=c*o,p[e.toId].y-=c*r),void 0!==p[e.fromId]&&(p[e.fromId].x+=c*o,p[e.fromId].y+=c*r)));s=1;for(var m=0;m<f.length;m++){var b=f[m];h=Math.min(s,Math.max(-s,p[b].springFx)),l=Math.min(s,Math.max(-s,p[b].springFy)),p[b].x+=h,p[b].y+=l}for(var w=0,k=0,_=0;_<f.length;_++){var x=f[_];w+=p[x].x,k+=p[x].y}for(var E=w/f.length,O=k/f.length,C=0;C<f.length;C++){var S=f[C];p[S].x-=E,p[S].y-=O}}}]),t}(),mC=function(){function t(e,i,n){Yd(this,t),this.body=e,this.physicsBody=i,this.setOptions(n)}return Kd(t,[{key:\"setOptions\",value:function(t){this.options=t}},{key:\"solve\",value:function(){for(var t,e,i,n,o=this.body.nodes,r=this.physicsBody.physicsNodeIndices,s=this.physicsBody.forces,a=0;a<r.length;a++){t=-(n=o[r[a]]).x,e=-n.y,i=Math.sqrt(t*t+e*e),this._calculateForces(i,t,e,s,n)}}},{key:\"_calculateForces\",value:function(t,e,i,n,o){var r=0===t?0:this.options.centralGravity/t;n[o.id].x=e*r,n[o.id].y=i*r}}]),t}();function bC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var wC=function(t){zk(i,t);var e=bC(i);function i(t,n,o){var r;return Yd(this,i),(r=e.call(this,t,n,o))._rng=jy(\"FORCE ATLAS 2 BASED REPULSION SOLVER\"),r}return Kd(i,[{key:\"_calculateForces\",value:function(t,e,i,n,o){0===t&&(e=t=.1*this._rng()),this.overlapAvoidanceFactor<1&&n.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,t-n.shape.radius));var r=n.edges.length+1,s=this.options.gravitationalConstant*o.mass*n.options.mass*r/Math.pow(t,2),a=e*s,h=i*s;this.physicsBody.forces[n.id].x+=a,this.physicsBody.forces[n.id].y+=h}}]),i}(fC);function kC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var _C=function(t){zk(i,t);var e=kC(i);function i(t,n,o){return Yd(this,i),e.call(this,t,n,o)}return Kd(i,[{key:\"_calculateForces\",value:function(t,e,i,n,o){if(t>0){var r=o.edges.length+1,s=this.options.centralGravity*r*o.options.mass;n[o.id].x=e*s,n[o.id].y=i*s}}}]),i}(mC),xC=function(){function t(e){Yd(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:\"barnesHut\",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},un(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t=this;this.body.emitter.on(\"initPhysics\",(function(){t.initPhysics()})),this.body.emitter.on(\"_layoutFailed\",(function(){t.layoutFailed=!0})),this.body.emitter.on(\"resetPhysics\",(function(){t.stopSimulation(),t.ready=!1})),this.body.emitter.on(\"disablePhysics\",(function(){t.physicsEnabled=!1,t.stopSimulation()})),this.body.emitter.on(\"restorePhysics\",(function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()})),this.body.emitter.on(\"startSimulation\",(function(){!0===t.ready&&t.startSimulation()})),this.body.emitter.on(\"stopSimulation\",(function(){t.stopSimulation()})),this.body.emitter.on(\"destroy\",(function(){t.stopSimulation(!1),t.body.emitter.off()})),this.body.emitter.on(\"_dataChanged\",(function(){t.updatePhysicsData()}))}},{key:\"setOptions\",value:function(t){if(void 0!==t)if(!1===t)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(!0===t)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,im([\"stabilization\"],this.options,t),Sm(this.options,t,\"stabilization\"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation());var e=this.options.wind;e&&((\"number\"!=typeof e.x||ek(e.x))&&(e.x=0),(\"number\"!=typeof e.y||ek(e.y))&&(e.y=0)),this.timestep=this.options.timestep}this.init()}},{key:\"init\",value:function(){var t;\"forceAtlas2Based\"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new wC(this.body,this.physicsBody,t),this.edgesSolver=new gC(this.body,this.physicsBody,t),this.gravitySolver=new _C(this.body,this.physicsBody,t)):\"repulsion\"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new pC(this.body,this.physicsBody,t),this.edgesSolver=new gC(this.body,this.physicsBody,t),this.gravitySolver=new mC(this.body,this.physicsBody,t)):\"hierarchicalRepulsion\"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new vC(this.body,this.physicsBody,t),this.edgesSolver=new yC(this.body,this.physicsBody,t),this.gravitySolver=new mC(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new fC(this.body,this.physicsBody,t),this.edgesSolver=new gC(this.body,this.physicsBody,t),this.gravitySolver=new mC(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:\"initPhysics\",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit(\"fit\",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit(\"fit\"))}},{key:\"startSimulation\",value:function(){var t;!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit(\"_resizeNodes\"),void 0===this.viewFunction&&(this.viewFunction=zn(t=this.simulationStep).call(t,this),this.body.emitter.on(\"initRedraw\",this.viewFunction),this.body.emitter.emit(\"_startRendering\"))):this.body.emitter.emit(\"_redraw\")}},{key:\"stopSimulation\",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off(\"initRedraw\",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit(\"_stopRendering\"))}},{key:\"simulationStep\",value:function(){var t=Eu();this.physicsTick(),(Eu()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:\"_emitStabilized\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&Sv((function(){t.body.emitter.emit(\"stabilized\",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0}),0)}},{key:\"physicsStep\",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:\"adjustTimeStep\",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2<this.options.timestep?this.timestep=this.options.timestep:(this.adaptiveCounter=-1,this.timestep=Math.max(this.options.timestep,this.timestep/1.2))}},{key:\"physicsTick\",value:function(){if(this._startStabilizing(),!0!==this.stabilized){if(!0===this.adaptiveTimestep&&!0===this.adaptiveTimestepEnabled)this.adaptiveCounter%this.adaptiveInterval==0?(this.timestep=2*this.timestep,this.physicsStep(),this.revert(),this.timestep=.5*this.timestep,this.physicsStep(),this.physicsStep(),this.adjustTimeStep()):this.physicsStep(),this.adaptiveCounter+=1;else this.timestep=this.options.timestep,this.physicsStep();!0===this.stabilized&&this.revert(),this.stabilizationIterations++}}},{key:\"updatePhysicsData\",value:function(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];var t=this.body.nodes,e=this.body.edges;for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&!0===t[i].options.physics&&this.physicsBody.physicsNodeIndices.push(t[i].id);for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&!0===e[n].options.physics&&this.physicsBody.physicsEdgeIndices.push(e[n].id);for(var o=0;o<this.physicsBody.physicsNodeIndices.length;o++){var r=this.physicsBody.physicsNodeIndices[o];this.physicsBody.forces[r]={x:0,y:0},void 0===this.physicsBody.velocities[r]&&(this.physicsBody.velocities[r]={x:0,y:0})}for(var s in this.physicsBody.velocities)void 0===t[s]&&delete this.physicsBody.velocities[s]}},{key:\"revert\",value:function(){var t=bu(this.previousStates),e=this.body.nodes,i=this.physicsBody.velocities;this.referenceState={};for(var n=0;n<t.length;n++){var o=t[n];void 0!==e[o]?!0===e[o].options.physics&&(this.referenceState[o]={positions:{x:e[o].x,y:e[o].y}},i[o].x=this.previousStates[o].vx,i[o].y=this.previousStates[o].vy,e[o].x=this.previousStates[o].x,e[o].y=this.previousStates[o].y):delete this.previousStates[o]}}},{key:\"_evaluateStepQuality\",value:function(){var t,e,i=this.body.nodes,n=this.referenceState;for(var o in this.referenceState)if(Object.prototype.hasOwnProperty.call(this.referenceState,o)&&void 0!==i[o]&&(t=i[o].x-n[o].positions.x,e=i[o].y-n[o].positions.y,Math.sqrt(Math.pow(t,2)+Math.pow(e,2))>.3))return!1;return!0}},{key:\"moveNodes\",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,n=0;n<t.length;n++){var o=t[n],r=this._performStep(o);e=Math.max(e,r),i+=r}this.adaptiveTimestepEnabled=i/t.length<5,this.stabilized=e<this.options.minVelocity}},{key:\"calculateComponentVelocity\",value:function(t,e,i){t+=(e-this.modelOptions.damping*t)/i*this.timestep;var n=this.options.maxVelocity||1e9;return Math.abs(t)>n&&(t=t>0?n:-n),t}},{key:\"_performStep\",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t];this.options.wind&&(i.x+=this.options.wind.x,i.y+=this.options.wind.y);var n=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:n.x,vy:n.y},!1===e.options.fixed.x?(n.x=this.calculateComponentVelocity(n.x,i.x,e.options.mass),e.x+=n.x*this.timestep):(i.x=0,n.x=0),!1===e.options.fixed.y?(n.y=this.calculateComponentVelocity(n.y,i.y,e.options.mass),e.y+=n.y*this.timestep):(i.y=0,n.y=0),Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}},{key:\"_freezeNodes\",value:function(){var t=this.body.nodes;for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:\"_restoreFrozenNodes\",value:function(){var t=this.body.nodes;for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:\"stabilize\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;\"number\"!=typeof e&&(e=this.options.stabilization.iterations,console.error(\"The stabilize method needs a numeric amount of iterations. Switching to default: \",e)),0!==this.physicsBody.physicsNodeIndices.length?(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit(\"_resizeNodes\"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit(\"_blockRedraw\"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,Sv((function(){return t._stabilizationBatch()}),0)):this.ready=!0}},{key:\"_startStabilizing\",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit(\"startStabilizing\"),this.startedStabilization=!0,!0)}},{key:\"_stabilizationBatch\",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations<t.targetIterations},i=function(){t.body.emitter.emit(\"stabilizationProgress\",{iterations:t.stabilizationIterations,total:t.targetIterations})};this._startStabilizing()&&i();for(var n,o=0;e()&&o<this.options.stabilization.updateInterval;)this.physicsTick(),o++;(i(),e())?Sv(zn(n=this._stabilizationBatch).call(n,this),0):this._finalizeStabilization()}},{key:\"_finalizeStabilization\",value:function(){this.body.emitter.emit(\"_allowRedraw\"),!0===this.options.stabilization.fit&&this.body.emitter.emit(\"fit\"),!0===this.options.stabilization.onlyDynamicEdges&&this._restoreFrozenNodes(),this.body.emitter.emit(\"stabilizationIterationsDone\"),this.body.emitter.emit(\"_requestRedraw\"),!0===this.stabilized?this._emitStabilized():this.startSimulation(),this.ready=!0}},{key:\"_drawForces\",value:function(t){for(var e=0;e<this.physicsBody.physicsNodeIndices.length;e++){var i=this.physicsBody.physicsNodeIndices[e],n=this.body.nodes[i],o=this.physicsBody.forces[i],r=Math.sqrt(Math.pow(o.x,2)+Math.pow(o.x,2)),s=Math.min(Math.max(5,r),15),a=3*s,h=km((180-180*Math.min(1,Math.max(0,.03*r)))/360,1,1),l={x:n.x+20*o.x,y:n.y+20*o.y};t.lineWidth=s,t.strokeStyle=h,t.beginPath(),t.moveTo(n.x,n.y),t.lineTo(l.x,l.y),t.stroke();var d=Math.atan2(o.y,o.x);t.fillStyle=h,XO.draw(t,{type:\"arrow\",point:l,angle:d,length:a}),jv(t).call(t)}}}]),t}(),EC=function(){function t(){Yd(this,t)}return Kd(t,null,[{key:\"getRange\",value:function(t){var e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,r=1e9,s=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)r>(e=t[i[a]]).shape.boundingBox.left&&(r=e.shape.boundingBox.left),s<e.shape.boundingBox.right&&(s=e.shape.boundingBox.right),n>e.shape.boundingBox.top&&(n=e.shape.boundingBox.top),o<e.shape.boundingBox.bottom&&(o=e.shape.boundingBox.bottom);return 1e9===r&&-1e9===s&&1e9===n&&-1e9===o&&(n=0,o=0,r=0,s=0),{minX:r,maxX:s,minY:n,maxY:o}}},{key:\"getRangeCore\",value:function(t){var e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,r=1e9,s=-1e9;if(i.length>0)for(var a=0;a<i.length;a++)r>(e=t[i[a]]).x&&(r=e.x),s<e.x&&(s=e.x),n>e.y&&(n=e.y),o<e.y&&(o=e.y);return 1e9===r&&-1e9===s&&1e9===n&&-1e9===o&&(n=0,o=0,r=0,s=0),{minX:r,maxX:s,minY:n,maxY:o}}},{key:\"findCenter\",value:function(t){return{x:.5*(t.maxX+t.minX),y:.5*(t.maxY+t.minY)}}},{key:\"cloneOptions\",value:function(t,e){var i={};return void 0===e||\"node\"===e?(nm(i,t.options,!0),i.x=t.x,i.y=t.y,i.amountOfConnections=t.edges.length):nm(i,t.options,!0),i}}]),t}();function OC(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var CC=function(t){zk(i,t);var e=OC(i);function i(t,n,o,r,s,a){var h;return Yd(this,i),(h=e.call(this,t,n,o,r,s,a)).isCluster=!0,h.containedNodes={},h.containedEdges={},h}return Kd(i,[{key:\"_openChildCluster\",value:function(t){var e=this,i=this.body.nodes[t];if(void 0===this.containedNodes[t])throw new Error(\"node with id: \"+t+\" not in current cluster\");if(!i.isCluster)throw new Error(\"node with id: \"+t+\" is not a cluster\");delete this.containedNodes[t],hm(i.edges,(function(t){delete e.containedEdges[t.id]})),hm(i.containedNodes,(function(t,i){e.containedNodes[i]=t})),i.containedNodes={},hm(i.containedEdges,(function(t,i){e.containedEdges[i]=t})),i.containedEdges={},hm(i.edges,(function(t){hm(e.edges,(function(i){var n,o,r=Fp(n=i.clusteringEdgeReplacingIds).call(n,t.id);-1!==r&&(hm(t.clusteringEdgeReplacingIds,(function(t){i.clusteringEdgeReplacingIds.push(t),e.body.edges[t].edgeReplacedById=i.id})),ff(o=i.clusteringEdgeReplacingIds).call(o,r,1))}))})),i.edges=[]}}]),i}(fO),SC=function(){function t(e){var i=this;Yd(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},un(this.options,this.defaultOptions),this.body.emitter.on(\"_resetData\",(function(){i.clusteredNodes={},i.clusteredEdges={}}))}return Kd(t,[{key:\"clusterByHubsize\",value:function(t,e){void 0===t?t=this._getHubSize():\"object\"===Qc(t)&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],n=0;n<this.body.nodeIndices.length;n++){var o=this.body.nodes[this.body.nodeIndices[n]];o.edges.length>=t&&i.push(o.id)}for(var r=0;r<i.length;r++)this.clusterByConnection(i[r],e,!0);this.body.emitter.emit(\"_dataChanged\")}},{key:\"cluster\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error(\"Cannot call clusterByNodeData without a joinCondition function in the options.\");e=this._checkOptions(e);var n={},o={};hm(this.body.nodes,(function(i,r){i.options&&!0===e.joinCondition(i.options)&&(n[r]=i,hm(i.edges,(function(e){void 0===t.clusteredEdges[e.id]&&(o[e.id]=e)})))})),this._cluster(n,o,e,i)}},{key:\"clusterByEdgeCount\",value:function(t,e){var i=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var o,r,s,a=[],h={},l=function(n){var l={},d={},c=i.body.nodeIndices[n],u=i.body.nodes[c];if(void 0===h[c]){s=0,r=[];for(var f=0;f<u.edges.length;f++)o=u.edges[f],void 0===i.clusteredEdges[o.id]&&(o.toId!==o.fromId&&s++,r.push(o));if(s===t){for(var p=function(t){if(void 0===e.joinCondition||null===e.joinCondition)return!0;var i=EC.cloneOptions(t);return e.joinCondition(i)},v=!0,g=0;g<r.length;g++){o=r[g];var y=i._getConnectedId(o,c);if(!p(u)){v=!1;break}d[o.id]=o,l[c]=u,l[y]=i.body.nodes[y],h[c]=!0}if(bu(l).length>0&&bu(d).length>0&&!0===v){var m=function(){for(var t=0;t<a.length;++t)for(var e in l)if(void 0!==a[t].nodes[e])return a[t]}();if(void 0!==m){for(var b in l)void 0===m.nodes[b]&&(m.nodes[b]=l[b]);for(var w in d)void 0===m.edges[w]&&(m.edges[w]=d[w])}else a.push({nodes:l,edges:d})}}}},d=0;d<this.body.nodeIndices.length;d++)l(d);for(var c=0;c<a.length;c++)this._cluster(a[c].nodes,a[c].edges,e,!1);!0===n&&this.body.emitter.emit(\"_dataChanged\")}},{key:\"clusterOutliers\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:\"clusterBridges\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:\"clusterByConnection\",value:function(t,e){var i,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error(\"No nodeId supplied to clusterByConnection!\");if(void 0===this.body.nodes[t])throw new Error(\"The nodeId given to clusterByConnection does not exist!\");var o=this.body.nodes[t];void 0===(e=this._checkOptions(e,o)).clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var r={},s={},a=o.id,h=EC.cloneOptions(o);r[a]=o;for(var l=0;l<o.edges.length;l++){var d=o.edges[l];if(void 0===this.clusteredEdges[d.id]){var c=this._getConnectedId(d,a);if(void 0===this.clusteredNodes[c])if(c!==a)if(void 0===e.joinCondition)s[d.id]=d,r[c]=this.body.nodes[c];else{var u=EC.cloneOptions(this.body.nodes[c]);!0===e.joinCondition(h,u)&&(s[d.id]=d,r[c]=this.body.nodes[c])}else s[d.id]=d}}var f=gu(i=bu(r)).call(i,(function(t){return r[t].id}));for(var p in r)if(Object.prototype.hasOwnProperty.call(r,p))for(var v=r[p],g=0;g<v.edges.length;g++){var y=v.edges[g];Fp(f).call(f,this._getConnectedId(y,v.id))>-1&&(s[y.id]=y)}this._cluster(r,s,e,n)}},{key:\"_createClusterEdges\",value:function(t,e,i,n){for(var o,r,s,a,h,l,d=bu(t),c=[],u=0;u<d.length;u++){s=t[r=d[u]];for(var f=0;f<s.edges.length;f++)o=s.edges[f],void 0===this.clusteredEdges[o.id]&&(o.toId==o.fromId?e[o.id]=o:o.toId==r?(a=i.id,l=h=o.fromId):(a=o.toId,h=i.id,l=a),void 0===t[l]&&c.push({edge:o,fromId:h,toId:a}))}for(var p=[],v=function(t){for(var e=0;e<p.length;e++){var i=p[e],n=t.fromId===i.fromId&&t.toId===i.toId,o=t.fromId===i.toId&&t.toId===i.fromId;if(n||o)return i}return null},g=0;g<c.length;g++){var y=c[g],m=y.edge,b=v(y);null===b?(b=this._createClusteredEdge(y.fromId,y.toId,m,n),p.push(b)):b.clusteringEdgeReplacingIds.push(m.id),this.body.edges[m.id].edgeReplacedById=b.id,this._backupEdgeOptions(m),m.setOptions({physics:!1})}}},{key:\"_checkOptions\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:\"_cluster\",value:function(t,e,i){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&void 0!==this.clusteredNodes[r]&&o.push(r);for(var s=0;s<o.length;++s)delete t[o[s]];if(0!=bu(t).length&&(1!=bu(t).length||1==i.clusterNodeProperties.allowSingleNodeCluster)){var a=nm({},i.clusterNodeProperties);if(void 0!==i.processProperties){var h=[];for(var l in t)if(Object.prototype.hasOwnProperty.call(t,l)){var d=EC.cloneOptions(t[l]);h.push(d)}var c=[];for(var u in e)if(Object.prototype.hasOwnProperty.call(e,u)&&\"clusterEdge:\"!==u.substr(0,12)){var f=EC.cloneOptions(e[u],\"edge\");c.push(f)}if(!(a=i.processProperties(a,h,c)))throw new Error(\"The processProperties function does not return properties!\")}void 0===a.id&&(a.id=\"cluster:\"+Ax());var p=a.id;void 0===a.label&&(a.label=\"cluster\");var v=void 0;void 0===a.x&&(v=this._getClusterPosition(t),a.x=v.x),void 0===a.y&&(void 0===v&&(v=this._getClusterPosition(t)),a.y=v.y),a.id=p;var g=this.body.functions.createNode(a,CC);g.containedNodes=t,g.containedEdges=e,g.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[a.id]=g,this._clusterEdges(t,e,a,i.clusterEdgeProperties),a.id=void 0,!0===n&&this.body.emitter.emit(\"_dataChanged\")}}},{key:\"_backupEdgeOptions\",value:function(t){void 0===this.clusteredEdges[t.id]&&(this.clusteredEdges[t.id]={physics:t.options.physics})}},{key:\"_restoreEdge\",value:function(t){var e=this.clusteredEdges[t.id];void 0!==e&&(t.setOptions({physics:e.physics}),delete this.clusteredEdges[t.id])}},{key:\"isCluster\",value:function(t){return void 0!==this.body.nodes[t]?!0===this.body.nodes[t].isCluster:(console.error(\"Node does not exist.\"),!1)}},{key:\"_getClusterPosition\",value:function(t){for(var e,i=bu(t),n=t[i[0]].x,o=t[i[0]].x,r=t[i[0]].y,s=t[i[0]].y,a=1;a<i.length;a++)n=(e=t[i[a]]).x<n?e.x:n,o=e.x>o?e.x:o,r=e.y<r?e.y:r,s=e.y>s?e.y:s;return{x:.5*(n+o),y:.5*(r+s)}}},{key:\"openCluster\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error(\"No clusterNodeId supplied to openCluster.\");var n=this.body.nodes[t];if(void 0===n)throw new Error(\"The clusterNodeId supplied to openCluster does not exist.\");if(!0!==n.isCluster||void 0===n.containedNodes||void 0===n.containedEdges)throw new Error(\"The node:\"+t+\" is not a valid cluster.\");var o=this.findNode(t),r=Fp(o).call(o,t)-1;if(r>=0){var s=o[r],a=this.body.nodes[s];return a._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit(\"_dataChanged\"))}var h=n.containedNodes,l=n.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&\"function\"==typeof e.releaseFunction){var d={},c={x:n.x,y:n.y};for(var u in h)if(Object.prototype.hasOwnProperty.call(h,u)){var f=this.body.nodes[u];d[u]={x:f.x,y:f.y}}var p=e.releaseFunction(c,d);for(var v in h)if(Object.prototype.hasOwnProperty.call(h,v)){var g=this.body.nodes[v];void 0!==p[v]&&(g.x=void 0===p[v].x?n.x:p[v].x,g.y=void 0===p[v].y?n.y:p[v].y)}}else hm(h,(function(t){!1===t.options.fixed.x&&(t.x=n.x),!1===t.options.fixed.y&&(t.y=n.y)}));for(var y in h)if(Object.prototype.hasOwnProperty.call(h,y)){var m=this.body.nodes[y];m.vx=n.vx,m.vy=n.vy,m.setOptions({physics:!0}),delete this.clusteredNodes[y]}for(var b=[],w=0;w<n.edges.length;w++)b.push(n.edges[w]);for(var k=0;k<b.length;k++){for(var _=b[k],x=this._getConnectedId(_,t),E=this.clusteredNodes[x],O=0;O<_.clusteringEdgeReplacingIds.length;O++){var C=_.clusteringEdgeReplacingIds[O],S=this.body.edges[C];if(void 0!==S)if(void 0!==E){var T=this.body.nodes[E.clusterId];T.containedEdges[S.id]=S,delete l[S.id];var M=S.fromId,P=S.toId;S.toId==x?P=E.clusterId:M=E.clusterId,this._createClusteredEdge(M,P,S,T.clusterEdgeProperties,{hidden:!1,physics:!0})}else this._restoreEdge(S)}_.remove()}for(var D in l)Object.prototype.hasOwnProperty.call(l,D)&&this._restoreEdge(l[D]);delete this.body.nodes[t],!0===i&&this.body.emitter.emit(\"_dataChanged\")}},{key:\"getNodesInCluster\",value:function(t){var e=[];if(!0===this.isCluster(t)){var i=this.body.nodes[t].containedNodes;for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&e.push(this.body.nodes[n].id)}return e}},{key:\"findNode\",value:function(t){for(var e,i=[],n=0;void 0!==this.clusteredNodes[t]&&n<100;){if(void 0===(e=this.body.nodes[t]))return[];i.push(e.id),t=this.clusteredNodes[t].clusterId,n++}return void 0===(e=this.body.nodes[t])?[]:(i.push(e.id),Yu(i).call(i),i)}},{key:\"updateClusteredNode\",value:function(t,e){if(void 0===t)throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\");if(void 0===e)throw new Error(\"No newOptions supplied to updateClusteredNode.\");if(void 0===this.body.nodes[t])throw new Error(\"The clusteredNodeId supplied to updateClusteredNode does not exist.\");this.body.nodes[t].setOptions(e),this.body.emitter.emit(\"_dataChanged\")}},{key:\"updateEdge\",value:function(t,e){if(void 0===t)throw new Error(\"No startEdgeId supplied to updateEdge.\");if(void 0===e)throw new Error(\"No newOptions supplied to updateEdge.\");if(void 0===this.body.edges[t])throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\");for(var i=this.getClusteredEdges(t),n=0;n<i.length;n++){this.body.edges[i[n]].setOptions(e)}this.body.emitter.emit(\"_dataChanged\")}},{key:\"getClusteredEdges\",value:function(t){for(var e=[],i=0;void 0!==t&&void 0!==this.body.edges[t]&&i<100;)e.push(this.body.edges[t].id),t=this.body.edges[t].edgeReplacedById,i++;return Yu(e).call(e),e}},{key:\"getBaseEdge\",value:function(t){return this.getBaseEdges(t)[0]}},{key:\"getBaseEdges\",value:function(t){for(var e=[t],i=[],n=[],o=0;e.length>0&&o<100;){var r=e.pop();if(void 0!==r){var s=this.body.edges[r];if(void 0!==s){o++;var a=s.clusteringEdgeReplacingIds;if(void 0===a)n.push(r);else for(var h=0;h<a.length;++h){var l=a[h];-1===Fp(e).call(e,a)&&-1===Fp(i).call(i,a)&&e.push(l)}i.push(r)}}}return n}},{key:\"_getConnectedId\",value:function(t,e){return t.toId!=e?t.toId:(t.fromId,t.fromId)}},{key:\"_getHubSize\",value:function(){for(var t=0,e=0,i=0,n=0,o=0;o<this.body.nodeIndices.length;o++){var r=this.body.nodes[this.body.nodeIndices[o]];r.edges.length>n&&(n=r.edges.length),t+=r.edges.length,e+=Math.pow(r.edges.length,2),i+=1}t/=i;var s=(e/=i)-Math.pow(t,2),a=Math.sqrt(s),h=Math.floor(t+2*a);return h>n&&(h=n),h}},{key:\"_createClusteredEdge\",value:function(t,e,i,n,o){var r=EC.cloneOptions(i,\"edge\");nm(r,n),r.from=t,r.to=e,r.id=\"clusterEdge:\"+Ax(),void 0!==o&&nm(r,o);var s=this.body.functions.createEdge(r);return s.clusteringEdgeReplacingIds=[i.id],s.connect(),this.body.edges[s.id]=s,s}},{key:\"_clusterEdges\",value:function(t,e,i,n){if(e instanceof cC){var o=e,r={};r[o.id]=o,e=r}if(t instanceof fO){var s=t,a={};a[s.id]=s,t=a}if(null==i)throw new Error(\"_clusterEdges: parameter clusterNode required\");for(var h in void 0===n&&(n=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,n),e)if(Object.prototype.hasOwnProperty.call(e,h)&&void 0!==this.body.edges[h]){var l=this.body.edges[h];this._backupEdgeOptions(l),l.setOptions({physics:!1})}for(var d in t)Object.prototype.hasOwnProperty.call(t,d)&&(this.clusteredNodes[d]={clusterId:i.id,node:this.body.nodes[d]},this.body.nodes[d].setOptions({physics:!1}))}},{key:\"_getClusterNodeForNode\",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:\"_filter\",value:function(t,e){var i=[];return hm(t,(function(t){e(t)&&i.push(t)})),i}},{key:\"_updateState\",value:function(){var t,e=this,i=[],n={},o=function(t){hm(e.body.nodes,(function(e){!0===e.isCluster&&t(e)}))};for(t in this.clusteredNodes){if(Object.prototype.hasOwnProperty.call(this.clusteredNodes,t))void 0===this.body.nodes[t]&&i.push(t)}o((function(t){for(var e=0;e<i.length;e++)delete t.containedNodes[i[e]]}));for(var r=0;r<i.length;r++)delete this.clusteredNodes[i[r]];hm(this.clusteredEdges,(function(t){var i=e.body.edges[t];void 0!==i&&i.endPointsValid()||(n[t]=t)})),o((function(t){hm(t.containedEdges,(function(t,e){t.endPointsValid()||n[e]||(n[e]=e)}))})),hm(this.body.edges,(function(t,i){var o=!0,r=t.clusteringEdgeReplacingIds;if(void 0!==r){var s=0;hm(r,(function(t){var i=e.body.edges[t];void 0!==i&&i.endPointsValid()&&(s+=1)})),o=s>0}t.endPointsValid()&&o||(n[i]=i)})),o((function(t){hm(n,(function(i){delete t.containedEdges[i],hm(t.edges,(function(o,r){o.id!==i?o.clusteringEdgeReplacingIds=e._filter(o.clusteringEdgeReplacingIds,(function(t){return!n[t]})):t.edges[r]=null})),t.edges=e._filter(t.edges,(function(t){return null!==t}))}))})),hm(n,(function(t){delete e.clusteredEdges[t]})),hm(n,(function(t){delete e.body.edges[t]})),hm(bu(this.body.edges),(function(t){var i=e.body.edges[t],n=e._isClusteredNode(i.fromId)||e._isClusteredNode(i.toId);if(n!==e._isClusteredEdge(i.id))if(n){var o=e._getClusterNodeForNode(i.fromId);void 0!==o&&e._clusterEdges(e.body.nodes[i.fromId],i,o);var r=e._getClusterNodeForNode(i.toId);void 0!==r&&e._clusterEdges(e.body.nodes[i.toId],i,r)}else delete e._clusterEdges[t],e._restoreEdge(i)}));for(var s=!1,a=!0,h=function(){var t=[];o((function(e){var i=bu(e.containedNodes).length,n=!0===e.options.allowSingleNodeCluster;(n&&i<1||!n&&i<2)&&t.push(e.id)}));for(var i=0;i<t.length;++i)e.openCluster(t[i],{},!1);a=t.length>0,s=s||a};a;)h();s&&this._updateState()}},{key:\"_isClusteredNode\",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:\"_isClusteredEdge\",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();function TC(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return MC(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return MC(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function MC(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var PC=function(){function t(e,i){var n;Yd(this,t),void 0!==window&&(n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===n?function(t){t()}:n,this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},un(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t,e=this;this.body.emitter.on(\"dragStart\",(function(){e.dragging=!0})),this.body.emitter.on(\"dragEnd\",(function(){e.dragging=!1})),this.body.emitter.on(\"zoom\",(function(){e.zooming=!0,window.clearTimeout(e.zoomTimeoutId),e.zoomTimeoutId=Sv((function(){var t;e.zooming=!1,zn(t=e._requestRedraw).call(t,e)()}),250)})),this.body.emitter.on(\"_resizeNodes\",(function(){e._resizeNodes()})),this.body.emitter.on(\"_redraw\",(function(){!1===e.renderingActive&&e._redraw()})),this.body.emitter.on(\"_blockRedraw\",(function(){e.allowRedraw=!1})),this.body.emitter.on(\"_allowRedraw\",(function(){e.allowRedraw=!0,e.redrawRequested=!1})),this.body.emitter.on(\"_requestRedraw\",zn(t=this._requestRedraw).call(t,this)),this.body.emitter.on(\"_startRendering\",(function(){e.renderRequests+=1,e.renderingActive=!0,e._startRendering()})),this.body.emitter.on(\"_stopRendering\",(function(){e.renderRequests-=1,e.renderingActive=e.renderRequests>0,e.renderTimer=void 0})),this.body.emitter.on(\"destroy\",(function(){e.renderRequests=0,e.allowRedraw=!1,e.renderingActive=!1,!0===e.requiresTimeout?clearTimeout(e.renderTimer):window.cancelAnimationFrame(e.renderTimer),e.body.emitter.off()}))}},{key:\"setOptions\",value:function(t){if(void 0!==t){em([\"hideEdgesOnDrag\",\"hideEdgesOnZoom\",\"hideNodesOnDrag\"],this.options,t)}}},{key:\"_requestNextFrame\",value:function(t,e){if(\"undefined\"!=typeof window){var i,n=window;return!0===this.requiresTimeout?i=Sv(t,e):n.requestAnimationFrame&&(i=n.requestAnimationFrame(t)),i}}},{key:\"_startRendering\",value:function(){var t;!0===this.renderingActive&&(void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(zn(t=this._renderStep).call(t,this),this.simulationInterval)))}},{key:\"_renderStep\",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:\"redraw\",value:function(){this.body.emitter.emit(\"setSize\"),this._redraw()}},{key:\"_requestRedraw\",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame((function(){t._redraw(!1)}),0))}},{key:\"_redraw\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit(\"initRedraw\"),this.redrawRequested=!1;var e={drawExternalLabels:null};0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var i=this.canvas.getContext(),n=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(i.clearRect(0,0,n,o),0===this.canvas.frame.clientWidth)return;if(i.save(),i.translate(this.body.view.translation.x,this.body.view.translation.y),i.scale(this.body.view.scale,this.body.view.scale),i.beginPath(),this.body.emitter.emit(\"beforeDrawing\",i),i.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&(!1===this.zooming||!0===this.zooming&&!1===this.options.hideEdgesOnZoom)&&this._drawEdges(i),!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag){var r=this._drawNodes(i,t),s=r.drawExternalLabels;e.drawExternalLabels=s}!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&(!1===this.zooming||!0===this.zooming&&!1===this.options.hideEdgesOnZoom)&&this._drawArrows(i),null!=e.drawExternalLabels&&e.drawExternalLabels(),!1===t&&this._drawSelectionBox(i),i.beginPath(),this.body.emitter.emit(\"afterDrawing\",i),i.closePath(),i.restore(),!0===t&&i.clearRect(0,0,n,o)}}},{key:\"_resizeNodes\",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e,i=this.body.nodes;for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&((e=i[n]).resize(t),e.updateBoundingBox(t,e.selected));t.restore()}},{key:\"_drawNodes\",value:function(t){for(var e,i,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.nodes,r=this.body.nodeIndices,s=[],a=[],h=20,l=this.canvas.DOMtoCanvas({x:-h,y:-h}),d=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+h,y:this.canvas.frame.canvas.clientHeight+h}),c={top:l.y,left:l.x,bottom:d.y,right:d.x},u=[],f=0;f<r.length;f++)if((e=o[r[f]]).hover)a.push(r[f]);else if(e.isSelected())s.push(r[f]);else if(!0===n){var p=e.draw(t);null!=p.drawExternalLabel&&u.push(p.drawExternalLabel)}else if(!0===e.isBoundingBoxOverlappingWith(c)){var v=e.draw(t);null!=v.drawExternalLabel&&u.push(v.drawExternalLabel)}else e.updateBoundingBox(t,e.selected);var g=s.length,y=a.length;for(i=0;i<g;i++){var m=(e=o[s[i]]).draw(t);null!=m.drawExternalLabel&&u.push(m.drawExternalLabel)}for(i=0;i<y;i++){var b=(e=o[a[i]]).draw(t);null!=b.drawExternalLabel&&u.push(b.drawExternalLabel)}return{drawExternalLabels:function(){var t,e=TC(u);try{for(e.s();!(t=e.n()).done;){(0,t.value)()}}catch(t){e.e(t)}finally{e.f()}}}}},{key:\"_drawEdges\",value:function(t){for(var e=this.body.edges,i=this.body.edgeIndices,n=0;n<i.length;n++){var o=e[i[n]];!0===o.connected&&o.draw(t)}}},{key:\"_drawArrows\",value:function(t){for(var e=this.body.edges,i=this.body.edgeIndices,n=0;n<i.length;n++){var o=e[i[n]];!0===o.connected&&o.drawArrows(t)}}},{key:\"_determineBrowserMethod\",value:function(){if(\"undefined\"!=typeof window){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,(-1!=Fp(t).call(t,\"msie 9.0\")||-1!=Fp(t).call(t,\"safari\")&&Fp(t).call(t,\"chrome\")<=-1)&&(this.requiresTimeout=!0)}else this.requiresTimeout=!0}},{key:\"_drawSelectionBox\",value:function(t){if(this.body.selectionBox.show){t.beginPath();var e=this.body.selectionBox.position.end.x-this.body.selectionBox.position.start.x,i=this.body.selectionBox.position.end.y-this.body.selectionBox.position.start.y;t.rect(this.body.selectionBox.position.start.x,this.body.selectionBox.position.start.y,e,i),t.fillStyle=\"rgba(151, 194, 252, 0.2)\",t.fillRect(this.body.selectionBox.position.start.x,this.body.selectionBox.position.start.y,e,i),t.strokeStyle=\"rgba(151, 194, 252, 1)\",t.stroke()}else t.closePath()}}]),t}(),DC=X.setInterval;function IC(t,e){e.inputHandler=function(t){t.isFirst&&e(t)},t.on(\"hammer.input\",e.inputHandler)}function BC(t,e){return e.inputHandler=function(t){t.isFinal&&e(t)},t.on(\"hammer.input\",e.inputHandler)}var zC=function(){function t(e){Yd(this,t),this.body=e,this.pixelRatio=1,this.cameraState={},this.initialized=!1,this.canvasViewCenter={},this._cleanupCallbacks=[],this.options={},this.defaultOptions={autoResize:!0,height:\"100%\",width:\"100%\"},un(this.options,this.defaultOptions),this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t,e=this;this.body.emitter.once(\"resize\",(function(t){0!==t.width&&(e.body.view.translation.x=.5*t.width),0!==t.height&&(e.body.view.translation.y=.5*t.height)})),this.body.emitter.on(\"setSize\",zn(t=this.setSize).call(t,this)),this.body.emitter.on(\"destroy\",(function(){e.hammerFrame.destroy(),e.hammer.destroy(),e._cleanUp()}))}},{key:\"setOptions\",value:function(t){var e=this;if(void 0!==t){em([\"width\",\"height\",\"autoResize\"],this.options,t)}if(this._cleanUp(),!0===this.options.autoResize){var i;if(window.ResizeObserver){var n=new ResizeObserver((function(){!0===e.setSize()&&e.body.emitter.emit(\"_requestRedraw\")})),o=this.frame;n.observe(o),this._cleanupCallbacks.push((function(){n.unobserve(o)}))}else{var r=DC((function(){!0===e.setSize()&&e.body.emitter.emit(\"_requestRedraw\")}),1e3);this._cleanupCallbacks.push((function(){clearInterval(r)}))}var s=zn(i=this._onResize).call(i,this);dm(window,\"resize\",s),this._cleanupCallbacks.push((function(){cm(window,\"resize\",s)}))}}},{key:\"_cleanUp\",value:function(){var t,e,i;Fu(t=Yu(e=ff(i=this._cleanupCallbacks).call(i,0)).call(e)).call(t,(function(t){try{t()}catch(t){console.error(t)}}))}},{key:\"_onResize\",value:function(){this.setSize(),this.body.emitter.emit(\"_redraw\")}},{key:\"_getCameraState\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:\"_setCameraState\",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var n=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),o={x:n.x-this.cameraState.position.x,y:n.y-this.cameraState.position.y};this.body.view.translation.x+=o.x*this.body.view.scale,this.body.view.translation.y+=o.y*this.body.view.scale}}},{key:\"_prepareValue\",value:function(t){if(\"number\"==typeof t)return t+\"px\";if(\"string\"==typeof t){if(-1!==Fp(t).call(t,\"%\")||-1!==Fp(t).call(t,\"px\"))return t;if(-1===Fp(t).call(t,\"%\"))return t+\"px\"}throw new Error(\"Could not use the value supplied for width or height:\"+t)}},{key:\"_create\",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement(\"div\"),this.frame.className=\"vis-network\",this.frame.style.position=\"relative\",this.frame.style.overflow=\"hidden\",this.frame.tabIndex=0,this.frame.canvas=document.createElement(\"canvas\"),this.frame.canvas.style.position=\"relative\",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement(\"DIV\");t.style.color=\"red\",t.style.fontWeight=\"bold\",t.style.padding=\"10px\",t.innerText=\"Error: your browser does not support HTML canvas\",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:\"_bindHammer\",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new Wm(this.frame.canvas),this.hammer.get(\"pinch\").set({enable:!0}),this.hammer.get(\"pan\").set({threshold:5,direction:Wm.DIRECTION_ALL}),IC(this.hammer,(function(e){t.body.eventListeners.onTouch(e)})),this.hammer.on(\"tap\",(function(e){t.body.eventListeners.onTap(e)})),this.hammer.on(\"doubletap\",(function(e){t.body.eventListeners.onDoubleTap(e)})),this.hammer.on(\"press\",(function(e){t.body.eventListeners.onHold(e)})),this.hammer.on(\"panstart\",(function(e){t.body.eventListeners.onDragStart(e)})),this.hammer.on(\"panmove\",(function(e){t.body.eventListeners.onDrag(e)})),this.hammer.on(\"panend\",(function(e){t.body.eventListeners.onDragEnd(e)})),this.hammer.on(\"pinch\",(function(e){t.body.eventListeners.onPinch(e)})),this.frame.canvas.addEventListener(\"wheel\",(function(e){t.body.eventListeners.onMouseWheel(e)})),this.frame.canvas.addEventListener(\"mousemove\",(function(e){t.body.eventListeners.onMouseMove(e)})),this.frame.canvas.addEventListener(\"contextmenu\",(function(e){t.body.eventListeners.onContext(e)})),this.hammerFrame=new Wm(this.frame),BC(this.hammerFrame,(function(e){t.body.eventListeners.onRelease(e)}))}},{key:\"setSize\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,n=this.frame.canvas.width,o=this.frame.canvas.height,r=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(r),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width=\"100%\",this.frame.canvas.style.height=\"100%\",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var s=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===s&&this.frame.canvas.height===a||this._getCameraState(r),this.frame.canvas.width!==s&&(this.frame.canvas.width=s,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit(\"resize\",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(n/this.pixelRatio),oldHeight:Math.round(o/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:\"getContext\",value:function(){return this.frame.canvas.getContext(\"2d\")}},{key:\"_determinePixelRatio\",value:function(){var t=this.getContext();if(void 0===t)throw new Error(\"Could not get canvax context\");var e=1;return\"undefined\"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:\"_setPixelRatio\",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:\"setTransform\",value:function(){var t=this.getContext();if(void 0===t)throw new Error(\"Could not get canvax context\");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:\"_XconvertDOMtoCanvas\",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:\"_XconvertCanvasToDOM\",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:\"_YconvertDOMtoCanvas\",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:\"_YconvertCanvasToDOM\",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:\"canvasToDOM\",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:\"DOMtoCanvas\",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();function NC(t,e){var i=un({nodes:e,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},null!=t?t:{});if(!lu(i.nodes))throw new TypeError(\"Nodes has to be an array of ids.\");if(0===i.nodes.length&&(i.nodes=e),!(\"number\"==typeof i.minZoomLevel&&i.minZoomLevel>0))throw new TypeError(\"Min zoom level has to be a number higher than zero.\");if(!(\"number\"==typeof i.maxZoomLevel&&i.minZoomLevel<=i.maxZoomLevel))throw new TypeError(\"Max zoom level has to be a number higher than min zoom level.\");return i}var FC=function(){function t(e,i){var n,o,r=this;Yd(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction=\"easeInOutQuint\",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on(\"fit\",zn(n=this.fit).call(n,this)),this.body.emitter.on(\"animationFinished\",(function(){r.body.emitter.emit(\"_stopRendering\")})),this.body.emitter.on(\"unlockNode\",zn(o=this.releaseNode).call(o,this))}return Kd(t,[{key:\"setOptions\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:\"fit\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=NC(t,this.body.nodeIndices);var i,n,o=this.canvas.frame.canvas.clientWidth,r=this.canvas.frame.canvas.clientHeight;if(0===o||0===r)n=1,i=EC.getRange(this.body.nodes,t.nodes);else if(!0===e){var s=0;for(var a in this.body.nodes)if(Object.prototype.hasOwnProperty.call(this.body.nodes,a)){var h=this.body.nodes[a];!0===h.predefinedPosition&&(s+=1)}if(s>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=EC.getRange(this.body.nodes,t.nodes);var l=this.body.nodeIndices.length;n=12.662/(l+7.4147)+.0964822;var d=Math.min(o/600,r/600);n*=d}else{this.body.emitter.emit(\"_resizeNodes\"),i=EC.getRange(this.body.nodes,t.nodes);var c=1.1*Math.abs(i.maxX-i.minX),u=1.1*Math.abs(i.maxY-i.minY),f=o/c,p=r/u;n=f<=p?f:p}n>t.maxZoomLevel?n=t.maxZoomLevel:n<t.minZoomLevel&&(n=t.minZoomLevel);var v=EC.findCenter(i),g={position:v,scale:n,animation:t.animation};this.moveTo(g)}},{key:\"focus\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.error(\"Node: \"+t+\" cannot be found.\")}},{key:\"moveTo\",value:function(t){if(void 0!==t){if(null!=t.offset){if(null!=t.offset.x){if(t.offset.x=+t.offset.x,!ok(t.offset.x))throw new TypeError('The option \"offset.x\" has to be a finite number.')}else t.offset.x=0;if(null!=t.offset.y){if(t.offset.y=+t.offset.y,!ok(t.offset.y))throw new TypeError('The option \"offset.y\" has to be a finite number.')}else t.offset.x=0}else t.offset={x:0,y:0};if(null!=t.position){if(null!=t.position.x){if(t.position.x=+t.position.x,!ok(t.position.x))throw new TypeError('The option \"position.x\" has to be a finite number.')}else t.position.x=0;if(null!=t.position.y){if(t.position.y=+t.position.y,!ok(t.position.y))throw new TypeError('The option \"position.y\" has to be a finite number.')}else t.position.x=0}else t.position=this.getViewPosition();if(null!=t.scale){if(t.scale=+t.scale,!(t.scale>0))throw new TypeError('The option \"scale\" has to be a number greater than zero.')}else t.scale=this.body.view.scale;void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction=\"easeInOutQuad\"),this.animateView(t)}else t={}}},{key:\"animateView\",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e,i,n=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),o=n.x-t.position.x,r=n.y-t.position.y;if(this.targetTranslation={x:this.sourceTranslation.x+o*this.targetScale+t.offset.x,y:this.sourceTranslation.y+r*this.targetScale+t.offset.y},0===t.animation.duration)if(null!=this.lockedOnNodeId)this.viewFunction=zn(e=this._lockedRedraw).call(e,this),this.body.emitter.on(\"initRedraw\",this.viewFunction);else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit(\"_requestRedraw\");else this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=zn(i=this._transitionRedraw).call(i,this),this.body.emitter.on(\"initRedraw\",this.viewFunction),this.body.emitter.emit(\"_startRendering\")}}},{key:\"_lockedRedraw\",value:function(){var t=this.body.nodes[this.lockedOnNodeId].x,e=this.body.nodes[this.lockedOnNodeId].y,i=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),n=i.x-t,o=i.y-e,r=this.body.view.translation,s={x:r.x+n*this.body.view.scale+this.lockedOnNodeOffset.x,y:r.y+o*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=s}},{key:\"releaseNode\",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off(\"initRedraw\",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:\"_transitionRedraw\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=Tm[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1){var i;if(this.body.emitter.off(\"initRedraw\",this.viewFunction),this.easingTime=0,null!=this.lockedOnNodeId)this.viewFunction=zn(i=this._lockedRedraw).call(i,this),this.body.emitter.on(\"initRedraw\",this.viewFunction);this.body.emitter.emit(\"animationFinished\")}}},{key:\"getScale\",value:function(){return this.body.view.scale}},{key:\"getViewPosition\",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();function AC(t){var e,i=t&&t.preventDefault||!1,n=t&&t.container||window,o={},r={keydown:{},keyup:{}},s={};for(e=97;e<=122;e++)s[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)s[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)s[\"\"+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)s[\"F\"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)s[\"num\"+e]={code:96+e,shift:!1};s[\"num*\"]={code:106,shift:!1},s[\"num+\"]={code:107,shift:!1},s[\"num-\"]={code:109,shift:!1},s[\"num/\"]={code:111,shift:!1},s[\"num.\"]={code:110,shift:!1},s.left={code:37,shift:!1},s.up={code:38,shift:!1},s.right={code:39,shift:!1},s.down={code:40,shift:!1},s.space={code:32,shift:!1},s.enter={code:13,shift:!1},s.shift={code:16,shift:void 0},s.esc={code:27,shift:!1},s.backspace={code:8,shift:!1},s.tab={code:9,shift:!1},s.ctrl={code:17,shift:!1},s.alt={code:18,shift:!1},s.delete={code:46,shift:!1},s.pageup={code:33,shift:!1},s.pagedown={code:34,shift:!1},s[\"=\"]={code:187,shift:!1},s[\"-\"]={code:189,shift:!1},s[\"]\"]={code:221,shift:!1},s[\"[\"]={code:219,shift:!1};var a=function(t){l(t,\"keydown\")},h=function(t){l(t,\"keyup\")},l=function(t,e){if(void 0!==r[e][t.keyCode]){for(var n=r[e][t.keyCode],o=0;o<n.length;o++)(void 0===n[o].shift||1==n[o].shift&&1==t.shiftKey||0==n[o].shift&&0==t.shiftKey)&&n[o].fn(t);1==i&&t.preventDefault()}};return o.bind=function(t,e,i){if(void 0===i&&(i=\"keydown\"),void 0===s[t])throw new Error(\"unsupported key: \"+t);void 0===r[i][s[t].code]&&(r[i][s[t].code]=[]),r[i][s[t].code].push({fn:e,shift:s[t].shift})},o.bindAll=function(t,e){for(var i in void 0===e&&(e=\"keydown\"),s)s.hasOwnProperty(i)&&o.bind(i,t,e)},o.getKey=function(t){for(var e in s)if(s.hasOwnProperty(e)){if(1==t.shiftKey&&1==s[e].shift&&t.keyCode==s[e].code)return e;if(0==t.shiftKey&&0==s[e].shift&&t.keyCode==s[e].code)return e;if(t.keyCode==s[e].code&&\"shift\"==e)return e}return\"unknown key, currently not supported\"},o.unbind=function(t,e,i){if(void 0===i&&(i=\"keydown\"),void 0===s[t])throw new Error(\"unsupported key: \"+t);if(void 0!==e){var n=[],o=r[i][s[t].code];if(void 0!==o)for(var a=0;a<o.length;a++)o[a].fn==e&&o[a].shift==s[t].shift||n.push(r[i][s[t].code][a]);r[i][s[t].code]=n}else r[i][s[t].code]=[]},o.reset=function(){r={keydown:{},keyup:{}}},o.destroy=function(){r={keydown:{},keyup:{}},n.removeEventListener(\"keydown\",a,!0),n.removeEventListener(\"keyup\",h,!0)},n.addEventListener(\"keydown\",a,!0),n.addEventListener(\"keyup\",h,!0),o}var jC=Object.freeze({__proto__:null,default:AC}),RC=function(){function t(e,i){var n=this;Yd(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on(\"activate\",(function(){n.activated=!0,n.configureKeyboardBindings()})),this.body.emitter.on(\"deactivate\",(function(){n.activated=!1,n.configureKeyboardBindings()})),this.body.emitter.on(\"destroy\",(function(){void 0!==n.keycharm&&n.keycharm.destroy()})),this.options={}}return Kd(t,[{key:\"setOptions\",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:\"create\",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:\"cleanNavigation\",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t<this.navigationHammers.length;t++)this.navigationHammers[t].destroy();this.navigationHammers=[]}this.navigationDOM&&this.navigationDOM.wrapper&&this.navigationDOM.wrapper.parentNode&&this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper),this.iconsCreated=!1}},{key:\"loadNavigationElements\",value:function(){var t=this;this.cleanNavigation(),this.navigationDOM={};var e=[\"up\",\"down\",\"left\",\"right\",\"zoomIn\",\"zoomOut\",\"zoomExtends\"],i=[\"_moveUp\",\"_moveDown\",\"_moveLeft\",\"_moveRight\",\"_zoomIn\",\"_zoomOut\",\"_fit\"];this.navigationDOM.wrapper=document.createElement(\"div\"),this.navigationDOM.wrapper.className=\"vis-navigation\",this.canvas.frame.appendChild(this.navigationDOM.wrapper);for(var n=0;n<e.length;n++){this.navigationDOM[e[n]]=document.createElement(\"div\"),this.navigationDOM[e[n]].className=\"vis-button vis-\"+e[n],this.navigationDOM.wrapper.appendChild(this.navigationDOM[e[n]]);var o,r,s=new Wm(this.navigationDOM[e[n]]);if(\"_fit\"===i[n])IC(s,zn(o=this._fit).call(o,this));else IC(s,zn(r=this.bindToRedraw).call(r,this,i[n]));this.navigationHammers.push(s)}var a=new Wm(this.canvas.frame);BC(a,(function(){t._stopMovement()})),this.navigationHammers.push(a),this.iconsCreated=!0}},{key:\"bindToRedraw\",value:function(t){var e;void 0===this.boundFunctions[t]&&(this.boundFunctions[t]=zn(e=this[t]).call(e,this),this.body.emitter.on(\"initRedraw\",this.boundFunctions[t]),this.body.emitter.emit(\"_startRendering\"))}},{key:\"unbindFromRedraw\",value:function(t){void 0!==this.boundFunctions[t]&&(this.body.emitter.off(\"initRedraw\",this.boundFunctions[t]),this.body.emitter.emit(\"_stopRendering\"),delete this.boundFunctions[t])}},{key:\"_fit\",value:function(){(new Date).valueOf()-this.touchTime>700&&(this.body.emitter.emit(\"fit\",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:\"_stopMovement\",value:function(){for(var t in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,t)&&(this.body.emitter.off(\"initRedraw\",this.boundFunctions[t]),this.body.emitter.emit(\"_stopRendering\"));this.boundFunctions={}}},{key:\"_moveUp\",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:\"_moveDown\",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:\"_moveLeft\",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:\"_moveRight\",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:\"_zoomIn\",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=e/t,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,r=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=e,this.body.view.translation={x:o,y:r},this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:null})}},{key:\"_zoomOut\",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=e/t,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,r=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=e,this.body.view.translation={x:o,y:r},this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:null})}},{key:\"configureKeyboardBindings\",value:function(){var t,e,i,n,o,r,s,a,h,l,d,c,u,f,p,v,g,y,m,b,w,k,_,x,E=this;(void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled)&&(!0===this.options.keyboard.bindToWindow?this.keycharm=AC({container:window,preventDefault:!0}):this.keycharm=AC({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(zn(t=this.keycharm).call(t,\"up\",(function(){E.bindToRedraw(\"_moveUp\")}),\"keydown\"),zn(e=this.keycharm).call(e,\"down\",(function(){E.bindToRedraw(\"_moveDown\")}),\"keydown\"),zn(i=this.keycharm).call(i,\"left\",(function(){E.bindToRedraw(\"_moveLeft\")}),\"keydown\"),zn(n=this.keycharm).call(n,\"right\",(function(){E.bindToRedraw(\"_moveRight\")}),\"keydown\"),zn(o=this.keycharm).call(o,\"=\",(function(){E.bindToRedraw(\"_zoomIn\")}),\"keydown\"),zn(r=this.keycharm).call(r,\"num+\",(function(){E.bindToRedraw(\"_zoomIn\")}),\"keydown\"),zn(s=this.keycharm).call(s,\"num-\",(function(){E.bindToRedraw(\"_zoomOut\")}),\"keydown\"),zn(a=this.keycharm).call(a,\"-\",(function(){E.bindToRedraw(\"_zoomOut\")}),\"keydown\"),zn(h=this.keycharm).call(h,\"[\",(function(){E.bindToRedraw(\"_zoomOut\")}),\"keydown\"),zn(l=this.keycharm).call(l,\"]\",(function(){E.bindToRedraw(\"_zoomIn\")}),\"keydown\"),zn(d=this.keycharm).call(d,\"pageup\",(function(){E.bindToRedraw(\"_zoomIn\")}),\"keydown\"),zn(c=this.keycharm).call(c,\"pagedown\",(function(){E.bindToRedraw(\"_zoomOut\")}),\"keydown\"),zn(u=this.keycharm).call(u,\"up\",(function(){E.unbindFromRedraw(\"_moveUp\")}),\"keyup\"),zn(f=this.keycharm).call(f,\"down\",(function(){E.unbindFromRedraw(\"_moveDown\")}),\"keyup\"),zn(p=this.keycharm).call(p,\"left\",(function(){E.unbindFromRedraw(\"_moveLeft\")}),\"keyup\"),zn(v=this.keycharm).call(v,\"right\",(function(){E.unbindFromRedraw(\"_moveRight\")}),\"keyup\"),zn(g=this.keycharm).call(g,\"=\",(function(){E.unbindFromRedraw(\"_zoomIn\")}),\"keyup\"),zn(y=this.keycharm).call(y,\"num+\",(function(){E.unbindFromRedraw(\"_zoomIn\")}),\"keyup\"),zn(m=this.keycharm).call(m,\"num-\",(function(){E.unbindFromRedraw(\"_zoomOut\")}),\"keyup\"),zn(b=this.keycharm).call(b,\"-\",(function(){E.unbindFromRedraw(\"_zoomOut\")}),\"keyup\"),zn(w=this.keycharm).call(w,\"[\",(function(){E.unbindFromRedraw(\"_zoomOut\")}),\"keyup\"),zn(k=this.keycharm).call(k,\"]\",(function(){E.unbindFromRedraw(\"_zoomIn\")}),\"keyup\"),zn(_=this.keycharm).call(_,\"pageup\",(function(){E.unbindFromRedraw(\"_zoomIn\")}),\"keyup\"),zn(x=this.keycharm).call(x,\"pagedown\",(function(){E.unbindFromRedraw(\"_zoomOut\")}),\"keyup\")))}}]),t}();function LC(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return HC(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return HC(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function HC(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var WC=function(){function t(e,i,n){var o,r,s,a,h,l,d,c,u,f,p,v,g;Yd(this,t),this.body=e,this.canvas=i,this.selectionHandler=n,this.navigationHandler=new RC(e,i),this.body.eventListeners.onTap=zn(o=this.onTap).call(o,this),this.body.eventListeners.onTouch=zn(r=this.onTouch).call(r,this),this.body.eventListeners.onDoubleTap=zn(s=this.onDoubleTap).call(s,this),this.body.eventListeners.onHold=zn(a=this.onHold).call(a,this),this.body.eventListeners.onDragStart=zn(h=this.onDragStart).call(h,this),this.body.eventListeners.onDrag=zn(l=this.onDrag).call(l,this),this.body.eventListeners.onDragEnd=zn(d=this.onDragEnd).call(d,this),this.body.eventListeners.onMouseWheel=zn(c=this.onMouseWheel).call(c,this),this.body.eventListeners.onPinch=zn(u=this.onPinch).call(u,this),this.body.eventListeners.onMouseMove=zn(f=this.onMouseMove).call(f,this),this.body.eventListeners.onRelease=zn(p=this.onRelease).call(p,this),this.body.eventListeners.onContext=zn(v=this.onContext).call(v,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=zn(g=this.getPointer).call(g,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},un(this.options,this.defaultOptions),this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t=this;this.body.emitter.on(\"destroy\",(function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer}))}},{key:\"setOptions\",value:function(t){if(void 0!==t){im([\"hideEdgesOnDrag\",\"hideEdgesOnZoom\",\"hideNodesOnDrag\",\"keyboard\",\"multiselect\",\"selectable\",\"selectConnectedEdges\"],this.options,t),Sm(this.options,t,\"keyboard\"),t.tooltip&&(un(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=gm(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:\"getPointer\",value:function(t){return{x:t.x-sm(this.canvas.frame.canvas),y:t.y-am(this.canvas.frame.canvas)}}},{key:\"onTouch\",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:\"onTap\",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,i),this.selectionHandler.commitAndEmit(e,t),this.selectionHandler.generateClickEvent(\"click\",t,e)}},{key:\"onDoubleTap\",value:function(t){var e=this.getPointer(t.center);this.selectionHandler.generateClickEvent(\"doubleClick\",t,e)}},{key:\"onHold\",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,i),this.selectionHandler.commitAndEmit(e,t),this.selectionHandler.generateClickEvent(\"click\",t,e),this.selectionHandler.generateClickEvent(\"hold\",t,e)}},{key:\"onRelease\",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler.generateClickEvent(\"release\",t,e),this.touchTime=(new Date).valueOf()}}},{key:\"onContext\",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler.generateClickEvent(\"oncontext\",t,e)}},{key:\"checkSelectionChanges\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];!0===e?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t)}},{key:\"_determineDifference\",value:function(t,e){var i=function(t,e){for(var i=[],n=0;n<t.length;n++){var o=t[n];-1===Fp(e).call(e,o)&&i.push(o)}return i};return{nodes:i(t.nodes,e.nodes),edges:i(t.edges,e.edges)}}},{key:\"onDragStart\",value:function(t){if(!this.drag.dragging){void 0===this.drag.pointer&&this.onTouch(t);var e=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=un({},this.body.view.translation),this.drag.nodeId=void 0,t.srcEvent.shiftKey){this.body.selectionBox.show=!0;var i=this.getPointer(t.center);this.body.selectionBox.position.start={x:this.canvas._XconvertDOMtoCanvas(i.x),y:this.canvas._YconvertDOMtoCanvas(i.y)},this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(i.x),y:this.canvas._YconvertDOMtoCanvas(i.y)}}if(void 0!==e&&!0===this.options.dragNodes){this.drag.nodeId=e.id,!1===e.isSelected()&&this.selectionHandler.setSelection({nodes:[e.id]}),this.selectionHandler.generateClickEvent(\"dragStart\",t,this.drag.pointer);var n,o=LC(this.selectionHandler.getSelectedNodes());try{for(o.s();!(n=o.n()).done;){var r=n.value,s={id:r.id,node:r,x:r.x,y:r.y,xFixed:r.options.fixed.x,yFixed:r.options.fixed.y};r.options.fixed.x=!0,r.options.fixed.y=!0,this.drag.selection.push(s)}}catch(t){o.e(t)}finally{o.f()}}else this.selectionHandler.generateClickEvent(\"dragStart\",t,this.drag.pointer,void 0,!0)}}},{key:\"onDrag\",value:function(t){var e=this;if(!0!==this.drag.pinched){this.body.emitter.emit(\"unlockNode\");var i=this.getPointer(t.center),n=this.drag.selection;if(n&&n.length&&!0===this.options.dragNodes){this.selectionHandler.generateClickEvent(\"dragging\",t,i);var o=i.x-this.drag.pointer.x,r=i.y-this.drag.pointer.y;Fu(n).call(n,(function(t){var i=t.node;!1===t.xFixed&&(i.x=e.canvas._XconvertDOMtoCanvas(e.canvas._XconvertCanvasToDOM(t.x)+o)),!1===t.yFixed&&(i.y=e.canvas._YconvertDOMtoCanvas(e.canvas._YconvertCanvasToDOM(t.y)+r))})),this.body.emitter.emit(\"startSimulation\")}else{if(t.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent(\"dragging\",t,i,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(t);this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(i.x),y:this.canvas._YconvertDOMtoCanvas(i.y)},this.body.emitter.emit(\"_requestRedraw\")}if(!0===this.options.dragView&&!t.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent(\"dragging\",t,i,void 0,!0),void 0===this.drag.pointer)return void this.onDragStart(t);var s=i.x-this.drag.pointer.x,a=i.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+s,y:this.drag.translation.y+a},this.body.emitter.emit(\"_requestRedraw\")}}}}},{key:\"onDragEnd\",value:function(t){var e=this;if(this.drag.dragging=!1,this.body.selectionBox.show){var i;this.body.selectionBox.show=!1;var n=this.body.selectionBox.position,o={minX:Math.min(n.start.x,n.end.x),minY:Math.min(n.start.y,n.end.y),maxX:Math.max(n.start.x,n.end.x),maxY:Math.max(n.start.y,n.end.y)},r=Xf(i=this.body.nodeIndices).call(i,(function(t){var i=e.body.nodes[t];return i.x>=o.minX&&i.x<=o.maxX&&i.y>=o.minY&&i.y<=o.maxY}));Fu(r).call(r,(function(t){return e.selectionHandler.selectObject(e.body.nodes[t])}));var s=this.getPointer(t.center);this.selectionHandler.commitAndEmit(s,t),this.selectionHandler.generateClickEvent(\"dragEnd\",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit(\"_requestRedraw\")}else{var a=this.drag.selection;a&&a.length?(Fu(a).call(a,(function(t){t.node.options.fixed.x=t.xFixed,t.node.options.fixed.y=t.yFixed})),this.selectionHandler.generateClickEvent(\"dragEnd\",t,this.getPointer(t.center)),this.body.emitter.emit(\"startSimulation\")):(this.selectionHandler.generateClickEvent(\"dragEnd\",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit(\"_requestRedraw\"))}}},{key:\"onPinch\",value:function(t){var e=this.getPointer(t.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*t.scale;this.zoom(i,e)}},{key:\"zoom\",value:function(t,e){if(!0===this.options.zoomView){var i=this.body.view.scale;t<1e-5&&(t=1e-5),t>10&&(t=10);var n=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(n=this.canvas.DOMtoCanvas(this.drag.pointer));var o=this.body.view.translation,r=t/i,s=(1-r)*e.x+o.x*r,a=(1-r)*e.y+o.y*r;if(this.body.view.scale=t,this.body.view.translation={x:s,y:a},null!=n){var h=this.canvas.canvasToDOM(n);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit(\"_requestRedraw\"),i<t?this.body.emitter.emit(\"zoom\",{direction:\"+\",scale:this.body.view.scale,pointer:e}):this.body.emitter.emit(\"zoom\",{direction:\"-\",scale:this.body.view.scale,pointer:e})}}},{key:\"onMouseWheel\",value:function(t){if(!0===this.options.zoomView){if(0!==t.deltaY){var e=this.body.view.scale;e*=1+(t.deltaY<0?1:-1)*(.1*this.options.zoomSpeed);var i=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(e,i)}t.preventDefault()}}},{key:\"onMouseMove\",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),n=!1;void 0!==this.popup&&(!1===this.popup.hidden&&this._checkHidePopup(i),!1===this.popup.hidden&&(n=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.autoFocus&&!1===this.options.keyboard.bindToWindow&&!0===this.options.keyboard.enabled&&this.canvas.frame.focus(),!1===n&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=Sv((function(){return e._checkShowPopup(i)}),this.options.tooltipDelay))),!0===this.options.hover&&this.selectionHandler.hoverObject(t,i)}},{key:\"_checkShowPopup\",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),n={left:e,top:i,right:e,bottom:i},o=void 0===this.popupObj?void 0:this.popupObj.id,r=!1,s=\"node\";if(void 0===this.popupObj){for(var a,h=this.body.nodeIndices,l=this.body.nodes,d=[],c=0;c<h.length;c++)!0===(a=l[h[c]]).isOverlappingWith(n)&&(r=!0,void 0!==a.getTitle()&&d.push(h[c]));d.length>0&&(this.popupObj=l[d[d.length-1]],r=!0)}if(void 0===this.popupObj&&!1===r){for(var u,f=this.body.edgeIndices,p=this.body.edges,v=[],g=0;g<f.length;g++)!0===(u=p[f[g]]).isOverlappingWith(n)&&!0===u.connected&&void 0!==u.getTitle()&&v.push(f[g]);v.length>0&&(this.popupObj=p[v[v.length-1]],s=\"edge\")}void 0!==this.popupObj?this.popupObj.id!==o&&(void 0===this.popup&&(this.popup=new qm(this.canvas.frame)),this.popup.popupTargetType=s,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit(\"showPopup\",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit(\"hidePopup\"))}},{key:\"_checkHidePopup\",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if(\"node\"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var n=this.selectionHandler.getNodeAt(t);i=void 0!==n&&n.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit(\"hidePopup\"))}}]),t}(),qC=g,VC=Nw,UC=Db.exports.getWeakData,YC=$e,XC=Y,GC=yw,KC=pw,$C=Wt,ZC=Vo.set,QC=Vo.getterFor,JC=Wh.find,tS=Wh.findIndex,eS=qC([].splice),iS=0,nS=function(t){return t.frozen||(t.frozen=new oS)},oS=function(){this.entries=[]},rS=function(t,e){return JC(t.entries,(function(t){return t[0]===e}))};oS.prototype={get:function(t){var e=rS(this,t);if(e)return e[1]},has:function(t){return!!rS(this,t)},set:function(t,e){var i=rS(this,t);i?i[1]=e:this.entries.push([t,e])},delete:function(t){var e=tS(this.entries,(function(e){return e[0]===t}));return~e&&eS(this.entries,e,1),!!~e}};var sS,aS={getConstructor:function(t,e,i,n){var o=t((function(t,o){GC(t,r),ZC(t,{type:e,id:iS++,frozen:void 0}),null!=o&&KC(o,t[n],{that:t,AS_ENTRIES:i})})),r=o.prototype,s=QC(e),a=function(t,e,i){var n=s(t),o=UC(YC(e),!0);return!0===o?nS(n).set(e,i):o[n.id]=i,t};return VC(r,{delete:function(t){var e=s(this);if(!XC(t))return!1;var i=UC(t);return!0===i?nS(e).delete(t):i&&$C(i,e.id)&&delete i[e.id]},has:function(t){var e=s(this);if(!XC(t))return!1;var i=UC(t);return!0===i?nS(e).has(t):i&&$C(i,e.id)}}),VC(r,i?{get:function(t){var e=s(this);if(XC(t)){var i=UC(t);return!0===i?nS(e).get(t):i?i[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},hS=n,lS=g,dS=Nw,cS=Db.exports,uS=Bw,fS=aS,pS=Y,vS=jb,gS=Vo.enforce,yS=_o,mS=!hS.ActiveXObject&&\"ActiveXObject\"in hS,bS=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},wS=uS(\"WeakMap\",bS,fS);if(yS&&mS){sS=fS.getConstructor(bS,\"WeakMap\",!0),cS.enable();var kS=wS.prototype,_S=lS(kS.delete),xS=lS(kS.has),ES=lS(kS.get),OS=lS(kS.set);dS(kS,{delete:function(t){if(pS(t)&&!vS(t)){var e=gS(this);return e.frozen||(e.frozen=new sS),_S(this,t)||e.frozen.delete(t)}return _S(this,t)},has:function(t){if(pS(t)&&!vS(t)){var e=gS(this);return e.frozen||(e.frozen=new sS),xS(this,t)||e.frozen.has(t)}return xS(this,t)},get:function(t){if(pS(t)&&!vS(t)){var e=gS(this);return e.frozen||(e.frozen=new sS),xS(this,t)?ES(this,t):e.frozen.get(t)}return ES(this,t)},set:function(t,e){if(pS(t)&&!vS(t)){var i=gS(this);i.frozen||(i.frozen=new sS),xS(this,t)?OS(this,t,e):i.frozen.set(t,e)}else OS(this,t,e);return this}})}var CS,SS,TS,MS,PS,DS=X.WeakMap;function IS(t,e,i,n){if(\"a\"===i&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!n:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===i?n:\"a\"===i?n.call(t):n?n.value:e.get(t)}function BS(t,e,i,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!o:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(t,i):o?o.value=i:e.set(t,i),i}function zS(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return NS(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return NS(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function NS(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function FS(t,e){var i,n=new b_,o=zS(e);try{for(o.s();!(i=o.n()).done;){var r=i.value;t.has(r)||n.add(r)}}catch(t){o.e(t)}finally{o.f()}return n}var AS=function(){function t(){Yd(this,t),CS.set(this,new b_),SS.set(this,new b_)}return Kd(t,[{key:\"size\",get:function(){return IS(this,SS,\"f\").size}},{key:\"add\",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n=0,o=e;n<o.length;n++){var r=o[n];IS(this,SS,\"f\").add(r)}}},{key:\"delete\",value:function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];for(var n=0,o=e;n<o.length;n++){var r=o[n];IS(this,SS,\"f\").delete(r)}}},{key:\"clear\",value:function(){IS(this,SS,\"f\").clear()}},{key:\"getSelection\",value:function(){return Jc(IS(this,SS,\"f\"))}},{key:\"getChanges\",value:function(){return{added:Jc(FS(IS(this,CS,\"f\"),IS(this,SS,\"f\"))),deleted:Jc(FS(IS(this,SS,\"f\"),IS(this,CS,\"f\"))),previous:Jc(new b_(IS(this,CS,\"f\"))),current:Jc(new b_(IS(this,SS,\"f\")))}}},{key:\"commit\",value:function(){var t=this.getChanges();BS(this,CS,IS(this,SS,\"f\"),\"f\"),BS(this,SS,new b_(IS(this,CS,\"f\")),\"f\");var e,i=zS(t.added);try{for(i.s();!(e=i.n()).done;){e.value.select()}}catch(t){i.e(t)}finally{i.f()}var n,o=zS(t.deleted);try{for(o.s();!(n=o.n()).done;){n.value.unselect()}}catch(t){o.e(t)}finally{o.f()}return t}}]),t}();CS=new DS,SS=new DS;var jS=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};Yd(this,t),TS.set(this,new AS),MS.set(this,new AS),PS.set(this,void 0),BS(this,PS,e,\"f\")}return Kd(t,[{key:\"sizeNodes\",get:function(){return IS(this,TS,\"f\").size}},{key:\"sizeEdges\",get:function(){return IS(this,MS,\"f\").size}},{key:\"getNodes\",value:function(){return IS(this,TS,\"f\").getSelection()}},{key:\"getEdges\",value:function(){return IS(this,MS,\"f\").getSelection()}},{key:\"addNodes\",value:function(){var t;(t=IS(this,TS,\"f\")).add.apply(t,arguments)}},{key:\"addEdges\",value:function(){var t;(t=IS(this,MS,\"f\")).add.apply(t,arguments)}},{key:\"deleteNodes\",value:function(t){IS(this,TS,\"f\").delete(t)}},{key:\"deleteEdges\",value:function(t){IS(this,MS,\"f\").delete(t)}},{key:\"clear\",value:function(){IS(this,TS,\"f\").clear(),IS(this,MS,\"f\").clear()}},{key:\"commit\",value:function(){for(var t,e,i={nodes:IS(this,TS,\"f\").commit(),edges:IS(this,MS,\"f\").commit()},n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return(t=IS(this,PS,\"f\")).call.apply(t,su(e=[this,i]).call(e,o)),i}}]),t}();function RS(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return LS(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return LS(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function LS(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}TS=new DS,MS=new DS,PS=new DS;var HS=function(){function t(e,i){var n=this;Yd(this,t),this.body=e,this.canvas=i,this._selectionAccumulator=new jS,this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},un(this.options,this.defaultOptions),this.body.emitter.on(\"_dataChanged\",(function(){n.updateSelection()}))}return Kd(t,[{key:\"setOptions\",value:function(t){if(void 0!==t){em([\"multiselect\",\"hoverConnectedEdges\",\"selectable\",\"selectConnectedEdges\"],this.options,t)}}},{key:\"selectOnPoint\",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit(\"_requestRedraw\")}return e}},{key:\"selectAdditionalOnPoint\",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,!0===i.isSelected()?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit(\"_requestRedraw\"))}return e}},{key:\"_initBaseEvent\",value:function(t,e){var i={};return i.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},i.event=t,i}},{key:\"generateClickEvent\",value:function(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=this._initBaseEvent(e,i);if(!0===o)r.nodes=[],r.edges=[];else{var s=this.getSelection();r.nodes=s.nodes,r.edges=s.edges}void 0!==n&&(r.previousSelection=n),\"click\"==t&&(r.items=this.getClickedItems(i)),void 0!==e.controlEdge&&(r.controlEdge=e.controlEdge),this.body.emitter.emit(t,r)}},{key:\"selectObject\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;if(void 0!==t){if(t instanceof fO){var i;if(!0===e)(i=this._selectionAccumulator).addEdges.apply(i,Jc(t.edges));this._selectionAccumulator.addNodes(t)}else this._selectionAccumulator.addEdges(t);return!0}return!1}},{key:\"deselectObject\",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:\"_getAllNodesOverlappingWith\",value:function(t){for(var e=[],i=this.body.nodes,n=0;n<this.body.nodeIndices.length;n++){var o=this.body.nodeIndices[n];i[o].isOverlappingWith(t)&&e.push(o)}return e}},{key:\"_pointerToPositionObject\",value:function(t){var e=this.canvas.DOMtoCanvas(t);return{left:e.x-1,top:e.y+1,right:e.x+1,bottom:e.y-1}}},{key:\"getNodeAt\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),n=this._getAllNodesOverlappingWith(i);return n.length>0?!0===e?this.body.nodes[n[n.length-1]]:n[n.length-1]:void 0}},{key:\"_getEdgesOverlappingWith\",value:function(t,e){for(var i=this.body.edges,n=0;n<this.body.edgeIndices.length;n++){var o=this.body.edgeIndices[n];i[o].isOverlappingWith(t)&&e.push(o)}}},{key:\"_getAllEdgesOverlappingWith\",value:function(t){var e=[];return this._getEdgesOverlappingWith(t,e),e}},{key:\"getEdgeAt\",value:function(t){for(var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),n=10,o=null,r=this.body.edges,s=0;s<this.body.edgeIndices.length;s++){var a=this.body.edgeIndices[s],h=r[a];if(h.connected){var l=h.from.x,d=h.from.y,c=h.to.x,u=h.to.y,f=h.edgeType.getDistanceToEdge(l,d,c,u,i.x,i.y);f<n&&(o=a,n=f)}}return null!==o?!0===e?this.body.edges[o]:o:void 0}},{key:\"_addToHover\",value:function(t){t instanceof fO?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:\"_removeFromSelection\",value:function(t){var e;t instanceof fO?(this._selectionAccumulator.deleteNodes(t),(e=this._selectionAccumulator).deleteEdges.apply(e,Jc(t.edges))):this._selectionAccumulator.deleteEdges(t)}},{key:\"unselectAll\",value:function(){this._selectionAccumulator.clear()}},{key:\"getSelectedNodeCount\",value:function(){return this._selectionAccumulator.sizeNodes}},{key:\"getSelectedEdgeCount\",value:function(){return this._selectionAccumulator.sizeEdges}},{key:\"_hoverConnectedEdges\",value:function(t){for(var e=0;e<t.edges.length;e++){var i=t.edges[e];i.hover=!0,this._addToHover(i)}}},{key:\"emitBlurEvent\",value:function(t,e,i){var n=this._initBaseEvent(t,e);!0===i.hover&&(i.hover=!1,i instanceof fO?(n.node=i.id,this.body.emitter.emit(\"blurNode\",n)):(n.edge=i.id,this.body.emitter.emit(\"blurEdge\",n)))}},{key:\"emitHoverEvent\",value:function(t,e,i){var n=this._initBaseEvent(t,e),o=!1;return!1===i.hover&&(i.hover=!0,this._addToHover(i),o=!0,i instanceof fO?(n.node=i.id,this.body.emitter.emit(\"hoverNode\",n)):(n.edge=i.id,this.body.emitter.emit(\"hoverEdge\",n))),o}},{key:\"hoverObject\",value:function(t,e){var i=this.getNodeAt(e);void 0===i&&(i=this.getEdgeAt(e));var n=!1;for(var o in this.hoverObj.nodes)Object.prototype.hasOwnProperty.call(this.hoverObj.nodes,o)&&(void 0===i||i instanceof fO&&i.id!=o||i instanceof cC)&&(this.emitBlurEvent(t,e,this.hoverObj.nodes[o]),delete this.hoverObj.nodes[o],n=!0);for(var r in this.hoverObj.edges)Object.prototype.hasOwnProperty.call(this.hoverObj.edges,r)&&(!0===n?(this.hoverObj.edges[r].hover=!1,delete this.hoverObj.edges[r]):(void 0===i||i instanceof cC&&i.id!=r||i instanceof fO&&!i.hover)&&(this.emitBlurEvent(t,e,this.hoverObj.edges[r]),delete this.hoverObj.edges[r],n=!0));if(void 0!==i){var s=bu(this.hoverObj.edges).length,a=bu(this.hoverObj.nodes).length;(n||i instanceof cC&&0===s&&0===a||i instanceof fO&&0===s&&0===a)&&(n=this.emitHoverEvent(t,e,i)),i instanceof fO&&!0===this.options.hoverConnectedEdges&&this._hoverConnectedEdges(i)}!0===n&&this.body.emitter.emit(\"_requestRedraw\")}},{key:\"commitWithoutEmitting\",value:function(){this._selectionAccumulator.commit()}},{key:\"commitAndEmit\",value:function(t,e){var i=!1,n=this._selectionAccumulator.commit(),o={nodes:n.nodes.previous,edges:n.edges.previous};n.edges.deleted.length>0&&(this.generateClickEvent(\"deselectEdge\",e,t,o),i=!0),n.nodes.deleted.length>0&&(this.generateClickEvent(\"deselectNode\",e,t,o),i=!0),n.nodes.added.length>0&&(this.generateClickEvent(\"selectNode\",e,t),i=!0),n.edges.added.length>0&&(this.generateClickEvent(\"selectEdge\",e,t),i=!0),!0===i&&this.generateClickEvent(\"select\",e,t)}},{key:\"getSelection\",value:function(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}},{key:\"getSelectedNodes\",value:function(){return this._selectionAccumulator.getNodes()}},{key:\"getSelectedEdges\",value:function(){return this._selectionAccumulator.getEdges()}},{key:\"getSelectedNodeIds\",value:function(){var t;return gu(t=this._selectionAccumulator.getNodes()).call(t,(function(t){return t.id}))}},{key:\"getSelectedEdgeIds\",value:function(){var t;return gu(t=this._selectionAccumulator.getEdges()).call(t,(function(t){return t.id}))}},{key:\"setSelection\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t||!t.nodes&&!t.edges)throw new TypeError(\"Selection must be an object with nodes and/or edges properties\");if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes){var i,n=RS(t.nodes);try{for(n.s();!(i=n.n()).done;){var o=i.value,r=this.body.nodes[o];if(!r)throw new RangeError('Node with id \"'+o+'\" not found');this.selectObject(r,e.highlightEdges)}}catch(t){n.e(t)}finally{n.f()}}if(t.edges){var s,a=RS(t.edges);try{for(a.s();!(s=a.n()).done;){var h=s.value,l=this.body.edges[h];if(!l)throw new RangeError('Edge with id \"'+h+'\" not found');this.selectObject(l)}}catch(t){a.e(t)}finally{a.f()}}this.body.emitter.emit(\"_requestRedraw\"),this._selectionAccumulator.commit()}},{key:\"selectNodes\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw\"Selection must be an array with ids\";this.setSelection({nodes:t},{highlightEdges:e})}},{key:\"selectEdges\",value:function(t){if(!t||void 0===t.length)throw\"Selection must be an array with ids\";this.setSelection({edges:t})}},{key:\"updateSelection\",value:function(){for(var t in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,t.id)||this._selectionAccumulator.deleteNodes(t);for(var e in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,e.id)||this._selectionAccumulator.deleteEdges(e)}},{key:\"getClickedItems\",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],n=this.body.nodeIndices,o=this.body.nodes,r=n.length-1;r>=0;r--){var s=o[n[r]].getItemsOnPoint(e);i.push.apply(i,s)}for(var a=this.body.edgeIndices,h=this.body.edges,l=a.length-1;l>=0;l--){var d=h[a[l]].getItemsOnPoint(e);i.push.apply(i,d)}return i}}]),t}(),WS={};!function(t){!function(t){function e(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}t.__esModule=!0,t.sort=v;var i=32,n=7,o=256,r=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function s(t){return t<1e5?t<100?t<10?0:1:t<1e4?t<1e3?2:3:4:t<1e7?t<1e6?5:6:t<1e9?t<1e8?7:8:9}function a(t,e){if(t===e)return 0;if(~~t===t&&~~e===e){if(0===t||0===e)return t<e?-1:1;if(t<0||e<0){if(e>=0)return-1;if(t>=0)return 1;t=-t,e=-e}var i=s(t),n=s(e),o=0;return i<n?(t*=r[n-i-1],e/=10,o=-1):i>n&&(e*=r[i-n-1],t/=10,o=1),t===e?o:t<e?-1:1}var a=String(t),h=String(e);return a===h?0:a<h?-1:1}function h(t){for(var e=0;t>=i;)e|=1&t,t>>=1;return t+e}function l(t,e,i,n){var o=e+1;if(o===i)return 1;if(n(t[o++],t[e])<0){for(;o<i&&n(t[o],t[o-1])<0;)o++;d(t,e,o)}else for(;o<i&&n(t[o],t[o-1])>=0;)o++;return o-e}function d(t,e,i){for(i--;e<i;){var n=t[e];t[e++]=t[i],t[i--]=n}}function c(t,e,i,n,o){for(n===e&&n++;n<i;n++){for(var r=t[n],s=e,a=n;s<a;){var h=s+a>>>1;o(r,t[h])<0?a=h:s=h+1}var l=n-s;switch(l){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;l>0;)t[s+l]=t[s+l-1],l--}t[s]=r}}function u(t,e,i,n,o,r){var s=0,a=0,h=1;if(r(t,e[i+o])>0){for(a=n-o;h<a&&r(t,e[i+o+h])>0;)s=h,(h=1+(h<<1))<=0&&(h=a);h>a&&(h=a),s+=o,h+=o}else{for(a=o+1;h<a&&r(t,e[i+o-h])<=0;)s=h,(h=1+(h<<1))<=0&&(h=a);h>a&&(h=a);var l=s;s=o-h,h=o-l}for(s++;s<h;){var d=s+(h-s>>>1);r(t,e[i+d])>0?s=d+1:h=d}return h}function f(t,e,i,n,o,r){var s=0,a=0,h=1;if(r(t,e[i+o])<0){for(a=o+1;h<a&&r(t,e[i+o-h])<0;)s=h,(h=1+(h<<1))<=0&&(h=a);h>a&&(h=a);var l=s;s=o-h,h=o-l}else{for(a=n-o;h<a&&r(t,e[i+o+h])>=0;)s=h,(h=1+(h<<1))<=0&&(h=a);h>a&&(h=a),s+=o,h+=o}for(s++;s<h;){var d=s+(h-s>>>1);r(t,e[i+d])<0?h=d:s=d+1}return h}var p=function(){function t(i,r){e(this,t),this.array=null,this.compare=null,this.minGallop=n,this.length=0,this.tmpStorageLength=o,this.stackLength=0,this.runStart=null,this.runLength=null,this.stackSize=0,this.array=i,this.compare=r,this.length=i.length,this.length<2*o&&(this.tmpStorageLength=this.length>>>1),this.tmp=new Array(this.tmpStorageLength),this.stackLength=this.length<120?5:this.length<1542?10:this.length<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength)}return t.prototype.pushRun=function(t,e){this.runStart[this.stackSize]=t,this.runLength[this.stackSize]=e,this.stackSize+=1},t.prototype.mergeRuns=function(){for(;this.stackSize>1;){var t=this.stackSize-2;if(t>=1&&this.runLength[t-1]<=this.runLength[t]+this.runLength[t+1]||t>=2&&this.runLength[t-2]<=this.runLength[t]+this.runLength[t-1])this.runLength[t-1]<this.runLength[t+1]&&t--;else if(this.runLength[t]>this.runLength[t+1])break;this.mergeAt(t)}},t.prototype.forceMergeRuns=function(){for(;this.stackSize>1;){var t=this.stackSize-2;t>0&&this.runLength[t-1]<this.runLength[t+1]&&t--,this.mergeAt(t)}},t.prototype.mergeAt=function(t){var e=this.compare,i=this.array,n=this.runStart[t],o=this.runLength[t],r=this.runStart[t+1],s=this.runLength[t+1];this.runLength[t]=o+s,t===this.stackSize-3&&(this.runStart[t+1]=this.runStart[t+2],this.runLength[t+1]=this.runLength[t+2]),this.stackSize--;var a=f(i[r],i,n,o,0,e);n+=a,0!=(o-=a)&&0!==(s=u(i[n+o-1],i,r,s,s-1,e))&&(o<=s?this.mergeLow(n,o,r,s):this.mergeHigh(n,o,r,s))},t.prototype.mergeLow=function(t,e,i,o){var r=this.compare,s=this.array,a=this.tmp,h=0;for(h=0;h<e;h++)a[h]=s[t+h];var l=0,d=i,c=t;if(s[c++]=s[d++],0!=--o)if(1!==e){for(var p=this.minGallop;;){var v=0,g=0,y=!1;do{if(r(s[d],a[l])<0){if(s[c++]=s[d++],g++,v=0,0==--o){y=!0;break}}else if(s[c++]=a[l++],v++,g=0,1==--e){y=!0;break}}while((v|g)<p);if(y)break;do{if(0!==(v=f(s[d],a,l,e,0,r))){for(h=0;h<v;h++)s[c+h]=a[l+h];if(c+=v,l+=v,(e-=v)<=1){y=!0;break}}if(s[c++]=s[d++],0==--o){y=!0;break}if(0!==(g=u(a[l],s,d,o,0,r))){for(h=0;h<g;h++)s[c+h]=s[d+h];if(c+=g,d+=g,0==(o-=g)){y=!0;break}}if(s[c++]=a[l++],1==--e){y=!0;break}p--}while(v>=n||g>=n);if(y)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),1===e){for(h=0;h<o;h++)s[c+h]=s[d+h];s[c+o]=a[l]}else{if(0===e)throw new Error(\"mergeLow preconditions were not respected\");for(h=0;h<e;h++)s[c+h]=a[l+h]}}else{for(h=0;h<o;h++)s[c+h]=s[d+h];s[c+o]=a[l]}else for(h=0;h<e;h++)s[c+h]=a[l+h]},t.prototype.mergeHigh=function(t,e,i,o){var r=this.compare,s=this.array,a=this.tmp,h=0;for(h=0;h<o;h++)a[h]=s[i+h];var l=t+e-1,d=o-1,c=i+o-1,p=0,v=0;if(s[c--]=s[l--],0!=--e)if(1!==o){for(var g=this.minGallop;;){var y=0,m=0,b=!1;do{if(r(a[d],s[l])<0){if(s[c--]=s[l--],y++,m=0,0==--e){b=!0;break}}else if(s[c--]=a[d--],m++,y=0,1==--o){b=!0;break}}while((y|m)<g);if(b)break;do{if(0!=(y=e-f(a[d],s,t,e,e-1,r))){for(e-=y,v=1+(c-=y),p=1+(l-=y),h=y-1;h>=0;h--)s[v+h]=s[p+h];if(0===e){b=!0;break}}if(s[c--]=a[d--],1==--o){b=!0;break}if(0!=(m=o-u(s[l],a,0,o,o-1,r))){for(o-=m,v=1+(c-=m),p=1+(d-=m),h=0;h<m;h++)s[v+h]=a[p+h];if(o<=1){b=!0;break}}if(s[c--]=s[l--],0==--e){b=!0;break}g--}while(y>=n||m>=n);if(b)break;g<0&&(g=0),g+=2}if(this.minGallop=g,g<1&&(this.minGallop=1),1===o){for(v=1+(c-=e),p=1+(l-=e),h=e-1;h>=0;h--)s[v+h]=s[p+h];s[c]=a[d]}else{if(0===o)throw new Error(\"mergeHigh preconditions were not respected\");for(p=c-(o-1),h=0;h<o;h++)s[p+h]=a[h]}}else{for(v=1+(c-=e),p=1+(l-=e),h=e-1;h>=0;h--)s[v+h]=s[p+h];s[c]=a[d]}else for(p=c-(o-1),h=0;h<o;h++)s[p+h]=a[h]},t}();function v(t,e,n,o){if(!Array.isArray(t))throw new TypeError(\"Can only sort arrays\");e?\"function\"!=typeof e&&(o=n,n=e,e=a):e=a,n||(n=0),o||(o=t.length);var r=o-n;if(!(r<2)){var s=0;if(r<i)c(t,n,o,n+(s=l(t,n,o,e)),e);else{var d=new p(t,e),u=h(r);do{if((s=l(t,n,o,e))<u){var f=r;f>u&&(f=u),c(t,n,n+f,n+s,e),s=f}d.pushRun(n,s),d.mergeRuns(),r-=s,n+=s}while(0!==r);d.forceMergeRuns()}}}}(t)}(WS);var qS=WS;function VS(t){var e=function(){if(\"undefined\"==typeof Reflect||!Mk)return!1;if(Mk.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Mk(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=Ak(t);if(e){var o=Ak(this).constructor;i=Mk(n,arguments,o)}else i=n.apply(this,arguments);return Nk(this,i)}}var US=function(){function t(){Yd(this,t)}return Kd(t,[{key:\"abstract\",value:function(){throw new Error(\"Can't instantiate abstract class!\")}},{key:\"fake_use\",value:function(){}},{key:\"curveType\",value:function(){return this.abstract()}},{key:\"getPosition\",value:function(t){return this.fake_use(t),this.abstract()}},{key:\"setPosition\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:\"getTreeSize\",value:function(t){return this.fake_use(t),this.abstract()}},{key:\"sort\",value:function(t){this.fake_use(t),this.abstract()}},{key:\"fix\",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:\"shift\",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),YS=function(t){zk(i,t);var e=VS(i);function i(t){var n;return Yd(this,i),(n=e.call(this)).layout=t,n}return Kd(i,[{key:\"curveType\",value:function(){return\"horizontal\"}},{key:\"getPosition\",value:function(t){return t.x}},{key:\"setPosition\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:\"getTreeSize\",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:\"sort\",value:function(t){qS.sort(t,(function(t,e){return t.x-e.x}))}},{key:\"fix\",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:\"shift\",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),i}(US),XS=function(t){zk(i,t);var e=VS(i);function i(t){var n;return Yd(this,i),(n=e.call(this)).layout=t,n}return Kd(i,[{key:\"curveType\",value:function(){return\"vertical\"}},{key:\"getPosition\",value:function(t){return t.y}},{key:\"setPosition\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:\"getTreeSize\",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:\"sort\",value:function(t){qS.sort(t,(function(t,e){return t.y-e.y}))}},{key:\"fix\",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:\"shift\",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),i}(US),GS=Wh.every;_i({target:\"Array\",proto:!0,forced:!Cu(\"every\")},{every:function(t){return GS(this,t,arguments.length>1?arguments[1]:void 0)}});var KS=Tn(\"Array\").every,$S=J,ZS=KS,QS=Array.prototype,JS=function(t){var e=t.every;return t===QS||$S(QS,t)&&e===QS.every?ZS:e},tT=JS;function eT(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return iT(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iT(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function iT(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}function nT(t,e){var i=new b_;return Fu(t).call(t,(function(t){var e;Fu(e=t.edges).call(e,(function(t){t.connected&&i.add(t)}))})),Fu(i).call(i,(function(t){var i=t.from.id,n=t.to.id;null==e[i]&&(e[i]=0),(null==e[n]||e[i]>=e[n])&&(e[n]=e[i]+1)})),e}function oT(t,e,i,n){var o,r,s=Kp(null),a=i_(o=Jc(kx(n).call(n))).call(o,(function(t,e){return t+1+e.edges.length}),0),h=i+\"Id\",l=\"to\"===i?1:-1,d=eT(n);try{var c=function(){var o=Kc(r.value,2),d=o[0],c=o[1];if(!n.has(d)||!t(c))return\"continue\";s[d]=0;for(var u=[c],f=0,p=void 0,v=function(){var t,o;if(!n.has(d))return\"continue\";var r=s[p.id]+l;if(Fu(t=Xf(o=p.edges).call(o,(function(t){return t.connected&&t.to!==t.from&&t[i]!==p&&n.has(t.toId)&&n.has(t.fromId)}))).call(t,(function(t){var n=t[h],o=s[n];(null==o||e(r,o))&&(s[n]=r,u.push(t[i]))})),f>a)return{v:{v:nT(n,s)}};++f};p=u.pop();){var g=v();if(\"continue\"!==g&&\"object\"===Qc(g))return g.v}};for(d.s();!(r=d.n()).done;){var u=c();if(\"continue\"!==u&&\"object\"===Qc(u))return u.v}}catch(t){d.e(t)}finally{d.f()}return s}var rT=function(){function t(){Yd(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return Kd(t,[{key:\"addRelation\",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:\"checkIfTree\",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:\"numTrees\",value:function(){return this.treeIndex+1}},{key:\"setTreeIndex\",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:\"ensureLevel\",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:\"getMaxLevel\",value:function(t){var e=this,i={};return function t(n){if(void 0!==i[n])return i[n];var o=e.levels[n];if(e.childrenReference[n]){var r=e.childrenReference[n];if(r.length>0)for(var s=0;s<r.length;s++)o=Math.max(o,t(r[s]))}return i[n]=o,o}(t)}},{key:\"levelDownstream\",value:function(t,e){void 0===this.levels[e.id]&&(void 0===this.levels[t.id]&&(this.levels[t.id]=0),this.levels[e.id]=this.levels[t.id]+1)}},{key:\"setMinLevelToZero\",value:function(t){var e=1e9;for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&void 0!==this.levels[i]&&(e=Math.min(this.levels[i],e));for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&void 0!==this.levels[n]&&(this.levels[n]-=e)}},{key:\"getTreeSize\",value:function(t,e){var i=1e9,n=-1e9,o=1e9,r=-1e9;for(var s in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,s)&&this.trees[s]===e){var a=t[s];i=Math.min(a.x,i),n=Math.max(a.x,n),o=Math.min(a.y,o),r=Math.max(a.y,r)}return{min_x:i,max_x:n,min_y:o,max_y:r}}},{key:\"hasSameParent\",value:function(t,e){var i=this.parentReference[t.id],n=this.parentReference[e.id];if(void 0===i||void 0===n)return!1;for(var o=0;o<i.length;o++)for(var r=0;r<n.length;r++)if(i[o]==n[r])return!0;return!1}},{key:\"inSameSubNetwork\",value:function(t,e){return this.trees[t.id]===this.trees[e.id]}},{key:\"getLevels\",value:function(){return bu(this.distributionOrdering)}},{key:\"addToOrdering\",value:function(t,e){void 0===this.distributionOrdering[e]&&(this.distributionOrdering[e]=[]);var i=!1,n=this.distributionOrdering[e];for(var o in n)if(n[o]===t){i=!0;break}i||(this.distributionOrdering[e].push(t),this.distributionIndex[t.id]=this.distributionOrdering[e].length-1)}}]),t}(),sT=function(){function t(e){Yd(this,t),this.body=e,this._resetRNG(Math.random()+\":\"+Eu()),this.setPhysics=!1,this.options={},this.optionsBackup={physics:{}},this.defaultOptions={randomSeed:void 0,improvedLayout:!0,clusterThreshold:150,hierarchical:{enabled:!1,levelSeparation:150,nodeSpacing:100,treeSpacing:200,blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:\"UD\",sortMethod:\"hubsize\"}},un(this.options,this.defaultOptions),this.bindEventListeners()}return Kd(t,[{key:\"bindEventListeners\",value:function(){var t=this;this.body.emitter.on(\"_dataChanged\",(function(){t.setupHierarchicalLayout()})),this.body.emitter.on(\"_dataLoaded\",(function(){t.layoutNetwork()})),this.body.emitter.on(\"_resetHierarchicalLayout\",(function(){t.setupHierarchicalLayout()})),this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\",(function(){if(!0===t.options.hierarchical.enabled){var e=t.direction.curveType();t.body.emitter.emit(\"_forceDisableDynamicCurves\",e,!1)}}))}},{key:\"setOptions\",value:function(t,e){if(void 0!==t){var i=this.options.hierarchical,n=i.enabled;if(em([\"randomSeed\",\"improvedLayout\",\"clusterThreshold\"],this.options,t),Sm(this.options,t,\"hierarchical\"),void 0!==t.randomSeed&&this._resetRNG(t.randomSeed),!0===i.enabled)return!0===n&&this.body.emitter.emit(\"refresh\",!0),\"RL\"===i.direction||\"DU\"===i.direction?i.levelSeparation>0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit(\"_resetHierarchicalLayout\"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===n)return this.body.emitter.emit(\"refresh\"),nm(e,this.optionsBackup)}return e}},{key:\"_resetRNG\",value:function(t){this.initialRandomSeed=t,this._rng=jy(this.initialRandomSeed)}},{key:\"adaptAllOptionsForHierarchicalLayout\",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:\"hierarchicalRepulsion\"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||\"barnesHut\"):\"object\"===Qc(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||\"barnesHut\",t.physics.solver=\"hierarchicalRepulsion\"):!1!==t.physics&&(e.solver=\"barnesHut\",t.physics={solver:\"hierarchicalRepulsion\"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:\"dynamic\"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:\"dynamic\"}},t.edges.smooth=!1;else if(\"boolean\"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var n=t.edges.smooth;void 0!==n.type&&\"dynamic\"!==n.type&&(i=n.type),this.optionsBackup.edges={smooth:{enabled:void 0===n.enabled||n.enabled,type:void 0===n.type?\"dynamic\":n.type,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection}},t.edges.smooth={enabled:void 0===n.enabled||n.enabled,type:i,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection}}this.body.emitter.emit(\"_forceDisableDynamicCurves\",i)}return t}},{key:\"positionInitially\",value:function(t){if(!0!==this.options.hierarchical.enabled){this._resetRNG(this.initialRandomSeed);for(var e=t.length+50,i=0;i<t.length;i++){var n=t[i],o=2*Math.PI*this._rng();void 0===n.x&&(n.x=e*Math.cos(o)),void 0===n.y&&(n.y=e*Math.sin(o))}}}},{key:\"layoutNetwork\",value:function(){if(!0!==this.options.hierarchical.enabled&&!0===this.options.improvedLayout){for(var t=this.body.nodeIndices,e=0,i=0;i<t.length;i++){!0===this.body.nodes[t[i]].predefinedPosition&&(e+=1)}if(e<.5*t.length){var n=0,o=this.options.clusterThreshold,r={clusterNodeProperties:{shape:\"ellipse\",label:\"\",group:\"\",font:{multi:!1}},clusterEdgeProperties:{label:\"\",font:{multi:!1},smooth:{enabled:!1}}};if(t.length>o){for(var s=t.length;t.length>o&&n<=10;){n+=1;var a=t.length;if(n%3==0?this.body.modules.clustering.clusterBridges(r):this.body.modules.clustering.clusterOutliers(r),a==t.length&&n%3!=0)return this._declusterAll(),this.body.emitter.emit(\"_layoutFailed\"),void console.info(\"This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.\")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}n>10&&console.info(\"The clustering didn't succeed within the amount of interations allowed, progressing with partial result.\"),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var h=0;h<t.length;h++){var l=this.body.nodes[t[h]];!1===l.predefinedPosition&&(l.x+=70*(.5-this._rng()),l.y+=70*(.5-this._rng()))}this._declusterAll(),this.body.emitter.emit(\"_repositionBezierNodes\")}}}},{key:\"_shiftToCenter\",value:function(){for(var t=EC.getRangeCore(this.body.nodes,this.body.nodeIndices),e=EC.findCenter(t),i=0;i<this.body.nodeIndices.length;i++){var n=this.body.nodes[this.body.nodeIndices[i]];n.x-=e.x,n.y-=e.y}}},{key:\"_declusterAll\",value:function(){for(var t=!0;!0===t;){t=!1;for(var e=0;e<this.body.nodeIndices.length;e++)!0===this.body.nodes[this.body.nodeIndices[e]].isCluster&&(t=!0,this.body.modules.clustering.openCluster(this.body.nodeIndices[e],{},!1));!0===t&&this.body.emitter.emit(\"_dataChanged\")}}},{key:\"getSeed\",value:function(){return this.initialRandomSeed}},{key:\"setupHierarchicalLayout\",value:function(){if(!0===this.options.hierarchical.enabled&&this.body.nodeIndices.length>0){var t,e,i=!1,n=!1;for(e in this.lastNodeOnLevel={},this.hierarchical=new rT,this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&(void 0!==(t=this.body.nodes[e]).options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):n=!0);if(!0===n&&!0===i)throw new Error(\"To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.\");if(!0===n){var o=this.options.hierarchical.sortMethod;\"hubsize\"===o?this._determineLevelsByHubsize():\"directed\"===o?this._determineLevelsDirected():\"custom\"===o&&this._determineLevelsCustomCallback()}for(var r in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,r)&&this.hierarchical.ensureLevel(r);var s=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(s),this._condenseHierarchy(),this._shiftToCenter()}}},{key:\"_condenseHierarchy\",value:function(){var t=this,e=!1,i={},n=function(e,i){var n=t.hierarchical.trees;for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&n[o]===e&&t.direction.shift(o,i)},o=function(){for(var e=[],i=0;i<t.hierarchical.numTrees();i++)e.push(t.direction.getTreeSize(i));return e},r=function e(i,n){if(!n[i.id]&&(n[i.id]=!0,t.hierarchical.childrenReference[i.id])){var o=t.hierarchical.childrenReference[i.id];if(o.length>0)for(var r=0;r<o.length;r++)e(t.body.nodes[o[r]],n)}},s=function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e9,n=1e9,o=1e9,r=1e9,s=-1e9;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var h=t.body.nodes[a],l=t.hierarchical.levels[h.id],d=t.direction.getPosition(h),c=t._getSpaceAroundNode(h,e),u=Kc(c,2),f=u[0],p=u[1];n=Math.min(f,n),o=Math.min(p,o),l<=i&&(r=Math.min(d,r),s=Math.max(d,s))}return[r,s,n,o]},a=function(e,i){var n=t.hierarchical.getMaxLevel(e.id),o=t.hierarchical.getMaxLevel(i.id);return Math.min(n,o)},h=function(e,i,n){for(var o=t.hierarchical,r=0;r<i.length;r++){var s=i[r],a=o.distributionOrdering[s];if(a.length>1)for(var h=0;h<a.length-1;h++){var l=a[h],d=a[h+1];o.hasSameParent(l,d)&&o.inSameSubNetwork(l,d)&&e(l,d,n)}}},l=function(i,n){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],h=t.direction.getPosition(i),l=t.direction.getPosition(n),d=Math.abs(l-h),c=t.options.hierarchical.nodeSpacing;if(d>c){var u={},f={};r(i,u),r(n,f);var p=a(i,n),v=s(u,p),g=s(f,p),y=v[1],m=g[0],b=g[2],w=Math.abs(y-m);if(w>c){var k=y-m+c;k<-b+c&&(k=-b+c),k<0&&(t._shiftBlock(n.id,k),e=!0,!0===o&&t._centerParent(n))}}},d=function(n,o){for(var a=o.id,h=o.edges,l=t.hierarchical.levels[o.id],d=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},u=[],f=0;f<h.length;f++){var p=h[f];if(p.toId!=p.fromId){var v=p.toId==a?p.from:p.to;c[h[f].id]=v,t.hierarchical.levels[v.id]<l&&u.push(p)}}var g=function(e,i){for(var n=0,o=0;o<i.length;o++)if(void 0!==c[i[o].id]){var r=t.direction.getPosition(c[i[o].id])-e;n+=r/Math.sqrt(r*r+d)}return n},y=function(e,i){for(var n=0,o=0;o<i.length;o++)if(void 0!==c[i[o].id]){var r=t.direction.getPosition(c[i[o].id])-e;n-=d*Math.pow(r*r+d,-1.5)}return n},m=function(e,i){for(var n=t.direction.getPosition(o),r={},s=0;s<e;s++){var a=g(n,i),h=y(n,i);if(void 0!==r[n-=Math.max(-40,Math.min(40,Math.round(a/h)))])break;r[n]=s}return n},b=m(n,u);!function(n){var a=t.direction.getPosition(o);if(void 0===i[o.id]){var h={};r(o,h),i[o.id]=h}var l=s(i[o.id]),d=l[2],c=l[3],u=n-a,f=0;u>0?f=Math.min(u,c-t.options.hierarchical.nodeSpacing):u<0&&(f=-Math.min(-u,d-t.options.hierarchical.nodeSpacing)),0!=f&&(t._shiftBlock(o.id,f),e=!0)}(b),function(i){var n=t.direction.getPosition(o),r=Kc(t._getSpaceAroundNode(o),2),s=r[0],a=r[1],h=i-n,l=n;h>0?l=Math.min(n+(a-t.options.hierarchical.nodeSpacing),i):h<0&&(l=Math.max(n-(s-t.options.hierarchical.nodeSpacing),i)),l!==n&&(t.direction.setPosition(o,l),e=!0)}(b=m(n,h))};!0===this.options.hierarchical.blockShifting&&(function(i){var n=t.hierarchical.getLevels();n=Yu(n).call(n);for(var o=0;o<i&&(e=!1,h(l,n,!0),!0===e);o++);}(5),function(){for(var e in t.body.nodes)Object.prototype.hasOwnProperty.call(t.body.nodes,e)&&t._centerParent(t.body.nodes[e])}()),!0===this.options.hierarchical.edgeMinimization&&function(i){var n=t.hierarchical.getLevels();n=Yu(n).call(n);for(var o=0;o<i;o++){e=!1;for(var r=0;r<n.length;r++)for(var s=n[r],a=t.hierarchical.distributionOrdering[s],h=0;h<a.length;h++)d(1e3,a[h]);if(!0!==e)break}}(20),!0===this.options.hierarchical.parentCentralization&&function(){var e=t.hierarchical.getLevels();e=Yu(e).call(e);for(var i=0;i<e.length;i++)for(var n=e[i],o=t.hierarchical.distributionOrdering[n],r=0;r<o.length;r++)t._centerParent(o[r])}(),function(){for(var e=o(),i=0,r=0;r<e.length-1;r++){i+=e[r].max-e[r+1].min+t.options.hierarchical.treeSpacing,n(r+1,i)}}()}},{key:\"_getSpaceAroundNode\",value:function(t,e){var i=!0;void 0===e&&(i=!1);var n=this.hierarchical.levels[t.id];if(void 0!==n){var o=this.hierarchical.distributionIndex[t.id],r=this.direction.getPosition(t),s=this.hierarchical.distributionOrdering[n],a=1e9,h=1e9;if(0!==o){var l=s[o-1];if(!0===i&&void 0===e[l.id]||!1===i)a=r-this.direction.getPosition(l)}if(o!=s.length-1){var d=s[o+1];if(!0===i&&void 0===e[d.id]||!1===i){var c=this.direction.getPosition(d);h=Math.min(h,c-r)}}return[a,h]}return[0,0]}},{key:\"_centerParent\",value:function(t){if(this.hierarchical.parentReference[t.id])for(var e=this.hierarchical.parentReference[t.id],i=0;i<e.length;i++){var n=e[i],o=this.body.nodes[n],r=this.hierarchical.childrenReference[n];if(void 0!==r){var s=this._getCenterPosition(r),a=this.direction.getPosition(o),h=Kc(this._getSpaceAroundNode(o),2),l=h[0],d=h[1],c=a-s;(c<0&&Math.abs(c)<d-this.options.hierarchical.nodeSpacing||c>0&&Math.abs(c)<l-this.options.hierarchical.nodeSpacing)&&this.direction.setPosition(o,s)}}}},{key:\"_placeNodesByHierarchy\",value:function(t){for(var e in this.positionedNodes={},t)if(Object.prototype.hasOwnProperty.call(t,e)){var i,n=bu(t[e]);n=this._indexArrayToNodes(n),rx(i=this.direction).call(i,n);for(var o=0,r=0;r<n.length;r++){var s=n[r];if(void 0===this.positionedNodes[s.id]){var a=this.options.hierarchical.nodeSpacing,h=a*o;o>0&&(h=this.direction.getPosition(n[r-1])+a),this.direction.setPosition(s,h,e),this._validatePositionAndContinue(s,e,h),o++}}}}},{key:\"_placeBranchNodes\",value:function(t,e){var i,n=this.hierarchical.childrenReference[t];if(void 0!==n){for(var o=[],r=0;r<n.length;r++)o.push(this.body.nodes[n[r]]);rx(i=this.direction).call(i,o);for(var s=0;s<o.length;s++){var a=o[s],h=this.hierarchical.levels[a.id];if(!(h>e&&void 0===this.positionedNodes[a.id]))return;var l=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+l,this.direction.setPosition(a,d,h),this._validatePositionAndContinue(a,h,d)}var c=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],c,e)}}},{key:\"_validatePositionAndContinue\",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var n=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-n<this.options.hierarchical.nodeSpacing){var o=n+this.options.hierarchical.nodeSpacing-i,r=this._findCommonParent(this.lastNodeOnLevel[e],t.id);this._shiftBlock(r.withChild,o)}}this.lastNodeOnLevel[e]=t.id,this.positionedNodes[t.id]=!0,this._placeBranchNodes(t.id,e)}}},{key:\"_indexArrayToNodes\",value:function(t){for(var e=[],i=0;i<t.length;i++)e.push(this.body.nodes[t[i]]);return e}},{key:\"_getDistribution\",value:function(){var t,e,i={};for(t in this.body.nodes)if(Object.prototype.hasOwnProperty.call(this.body.nodes,t)){e=this.body.nodes[t];var n=void 0===this.hierarchical.levels[t]?0:this.hierarchical.levels[t];this.direction.fix(e,n),void 0===i[n]&&(i[n]={}),i[n][t]=e}return i}},{key:\"_getActiveEdges\",value:function(t){var e=this,i=[];return hm(t.edges,(function(t){var n;-1!==Fp(n=e.body.edgeIndices).call(n,t.id)&&i.push(t)})),i}},{key:\"_getHubSizes\",value:function(){var t=this,e={};hm(this.body.nodeIndices,(function(i){var n=t.body.nodes[i],o=t._getActiveEdges(n).length;e[o]=!0}));var i=[];return hm(e,(function(t){i.push(Number(t))})),rx(qS).call(qS,i,(function(t,e){return e-t})),i}},{key:\"_determineLevelsByHubsize\",value:function(){for(var t=this,e=function(e,i){t.hierarchical.levelDownstream(e,i)},i=this._getHubSizes(),n=function(n){var o=i[n];if(0===o)return\"break\";hm(t.body.nodeIndices,(function(i){var n=t.body.nodes[i];o===t._getActiveEdges(n).length&&t._crawlNetwork(e,i)}))},o=0;o<i.length;++o){if(\"break\"===n(o))break}}},{key:\"_determineLevelsCustomCallback\",value:function(){var t=this;this._crawlNetwork((function(e,i,n){var o=t.hierarchical.levels[e.id];void 0===o&&(o=t.hierarchical.levels[e.id]=1e5);var r=(EC.cloneOptions(e,\"node\"),EC.cloneOptions(i,\"node\"),void EC.cloneOptions(n,\"edge\"));t.hierarchical.levels[i.id]=o+r})),this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_determineLevelsDirected\",value:function(){var t,e=this,i=i_(t=this.body.nodeIndices).call(t,(function(t,i){return t.set(i,e.body.nodes[i]),t}),new Jw);\"roots\"===this.options.hierarchical.shakeTowards?this.hierarchical.levels=function(t){return oT((function(e){var i,n;return tT(i=Xf(n=e.edges).call(n,(function(e){return t.has(e.toId)}))).call(i,(function(t){return t.from===e}))}),(function(t,e){return e<t}),\"to\",t)}(i):this.hierarchical.levels=function(t){return oT((function(e){var i,n;return tT(i=Xf(n=e.edges).call(n,(function(e){return t.has(e.toId)}))).call(i,(function(t){return t.to===e}))}),(function(t,e){return e>t}),\"from\",t)}(i),this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:\"_generateMap\",value:function(){var t=this;this._crawlNetwork((function(e,i){t.hierarchical.levels[i.id]>t.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)})),this.hierarchical.checkIfTree()}},{key:\"_crawlNetwork\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments.length>1?arguments[1]:void 0,n={},o=function i(o,r){if(void 0===n[o.id]){var s;t.hierarchical.setTreeIndex(o,r),n[o.id]=!0;for(var a=t._getActiveEdges(o),h=0;h<a.length;h++){var l=a[h];!0===l.connected&&(s=l.toId==o.id?l.from:l.to,o.id!=s.id&&(e(o,s,l),i(s,r)))}}};if(void 0===i)for(var r=0,s=0;s<this.body.nodeIndices.length;s++){var a=this.body.nodeIndices[s];if(void 0===n[a]){var h=this.body.nodes[a];o(h,r),r+=1}}else{var l=this.body.nodes[i];if(void 0===l)return void console.error(\"Node not found:\",i);o(l)}}},{key:\"_shiftBlock\",value:function(t,e){var i=this,n={};!function t(o){if(!n[o]){n[o]=!0,i.direction.shift(o,e);var r=i.hierarchical.childrenReference[o];if(void 0!==r)for(var s=0;s<r.length;s++)t(r[s])}}(t)}},{key:\"_findCommonParent\",value:function(t,e){var i=this,n={};return function t(e,n){var o=i.hierarchical.parentReference[n];if(void 0!==o)for(var r=0;r<o.length;r++){var s=o[r];e[s]=!0,t(e,s)}}(n,t),function t(e,n){var o=i.hierarchical.parentReference[n];if(void 0!==o)for(var r=0;r<o.length;r++){var s=o[r];if(void 0!==e[s])return{foundParent:s,withChild:n};var a=t(e,s);if(null!==a.foundParent)return a}return{foundParent:null,withChild:n}}(n,e)}},{key:\"setDirectionStrategy\",value:function(){var t=\"UD\"===this.options.hierarchical.direction||\"DU\"===this.options.hierarchical.direction;this.direction=t?new YS(this):new XS(this)}},{key:\"_getCenterPosition\",value:function(t){for(var e=1e9,i=-1e9,n=0;n<t.length;n++){var o=void 0;if(void 0!==t[n].id)o=t[n];else{var r=t[n];o=this.body.nodes[r]}var s=this.direction.getPosition(o);e=Math.min(e,s),i=Math.max(i,s)}return.5*(e+i)}}]),t}();function aT(t,e){var i=void 0!==tu&&ih(t)||t[\"@@iterator\"];if(!i){if(lu(t)||(i=function(t,e){var i;if(!t)return;if(\"string\"==typeof t)return hT(t,e);var n=au(i=Object.prototype.toString.call(t)).call(i,8,-1);\"Object\"===n&&t.constructor&&(n=t.constructor.name);if(\"Map\"===n||\"Set\"===n)return ja(t);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hT(t,e)}(t))||e&&t&&\"number\"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function hT(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var lT=function(){function t(e,i,n,o){var r,s,a=this;Yd(this,t),this.body=e,this.canvas=i,this.selectionHandler=n,this.interactionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this._domEventListenerCleanupQueue=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:\"dot\",size:6,color:{background:\"#ff0000\",border:\"#3c3c3c\",highlight:{background:\"#07f968\",border:\"#3c3c3c\"}},borderWidth:2,borderWidthSelected:2}},un(this.options,this.defaultOptions),this.body.emitter.on(\"destroy\",(function(){a._clean()})),this.body.emitter.on(\"_dataChanged\",zn(r=this._restore).call(r,this)),this.body.emitter.on(\"_resetData\",zn(s=this._restore).call(s,this))}return Kd(t,[{key:\"_restore\",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:\"setOptions\",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&(\"boolean\"==typeof t?this.options.enabled=t:(this.options.enabled=!0,nm(this.options,t)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:\"toggleEditMode\",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:\"enableEditMode\",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display=\"block\",this.closeDiv.style.display=\"block\",this.editModeDiv.style.display=\"none\",this.showManipulatorToolbar())}},{key:\"disableEditMode\",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display=\"none\",this.closeDiv.style.display=\"none\",this.editModeDiv.style.display=\"block\",this._createEditButton())}},{key:\"showManipulatorToolbar\",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){var t,e;this.editMode=!0,this.manipulationDiv.style.display=\"block\",this.closeDiv.style.display=\"block\";var i=this.selectionHandler.getSelectedNodeCount(),n=this.selectionHandler.getSelectedEdgeCount(),o=i+n,r=this.options.locales[this.options.locale],s=!1;!1!==this.options.addNode&&(this._createAddNodeButton(r),s=!0),!1!==this.options.addEdge&&(!0===s?this._createSeperator(1):s=!0,this._createAddEdgeButton(r)),1===i&&\"function\"==typeof this.options.editNode?(!0===s?this._createSeperator(2):s=!0,this._createEditNodeButton(r)):1===n&&0===i&&!1!==this.options.editEdge&&(!0===s?this._createSeperator(3):s=!0,this._createEditEdgeButton(r)),0!==o&&(i>0&&!1!==this.options.deleteNode||0===i&&!1!==this.options.deleteEdge)&&(!0===s&&this._createSeperator(4),this._createDeleteButton(r)),this._bindElementEvents(this.closeDiv,zn(t=this.toggleEditMode).call(t,this)),this._temporaryBindEvent(\"select\",zn(e=this.showManipulatorToolbar).call(e,this))}this.body.emitter.emit(\"_redraw\")}},{key:\"addNodeMode\",value:function(){var t;if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"addNode\",!0===this.guiEnabled){var e,i=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(i),this._createSeperator(),this._createDescription(i.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,zn(e=this.toggleEditMode).call(e,this))}this._temporaryBindEvent(\"click\",zn(t=this._performAddNode).call(t,this))}},{key:\"editNode\",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler.getSelectedNodes()[0];if(void 0!==e){if(this.inMode=\"editNode\",\"function\"!=typeof this.options.editNode)throw new Error(\"No function has been configured to handle the editing of nodes.\");if(!0!==e.isCluster){var i=nm({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error(\"The function for edit does not support two arguments (data, callback)\");this.options.editNode(i,(function(e){null!=e&&\"editNode\"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()}))}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:\"addEdgeMode\",value:function(){var t,e,i,n,o;if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"addEdge\",!0===this.guiEnabled){var r,s=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(s),this._createSeperator(),this._createDescription(s.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,zn(r=this.toggleEditMode).call(r,this))}this._temporaryBindUI(\"onTouch\",zn(t=this._handleConnect).call(t,this)),this._temporaryBindUI(\"onDragEnd\",zn(e=this._finishConnect).call(e,this)),this._temporaryBindUI(\"onDrag\",zn(i=this._dragControlNode).call(i,this)),this._temporaryBindUI(\"onRelease\",zn(n=this._finishConnect).call(n,this)),this._temporaryBindUI(\"onDragStart\",zn(o=this._dragStartEdge).call(o,this)),this._temporaryBindUI(\"onHold\",(function(){}))}},{key:\"editEdgeMode\",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"editEdge\",\"object\"!==Qc(this.options.editEdge)||\"function\"!=typeof this.options.editEdge.editWithoutDrag||(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],void 0===this.edgeBeingEditedId)){if(!0===this.guiEnabled){var t,e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,zn(t=this.toggleEditMode).call(t,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],void 0!==this.edgeBeingEditedId){var i,n,o,r,s=this.body.edges[this.edgeBeingEditedId],a=this._getNewTargetNode(s.from.x,s.from.y),h=this._getNewTargetNode(s.to.x,s.to.y);this.temporaryIds.nodes.push(a.id),this.temporaryIds.nodes.push(h.id),this.body.nodes[a.id]=a,this.body.nodeIndices.push(a.id),this.body.nodes[h.id]=h,this.body.nodeIndices.push(h.id),this._temporaryBindUI(\"onTouch\",zn(i=this._controlNodeTouch).call(i,this)),this._temporaryBindUI(\"onTap\",(function(){})),this._temporaryBindUI(\"onHold\",(function(){})),this._temporaryBindUI(\"onDragStart\",zn(n=this._controlNodeDragStart).call(n,this)),this._temporaryBindUI(\"onDrag\",zn(o=this._controlNodeDrag).call(o,this)),this._temporaryBindUI(\"onDragEnd\",zn(r=this._controlNodeDragEnd).call(r,this)),this._temporaryBindUI(\"onMouseMove\",(function(){})),this._temporaryBindEvent(\"beforeDrawing\",(function(t){var e=s.edgeType.findBorderPositions(t);!1===a.selected&&(a.x=e.from.x,a.y=e.from.y),!1===h.selected&&(h.x=e.to.x,h.y=e.to.y)})),this.body.emitter.emit(\"_redraw\")}else this.showManipulatorToolbar()}else{var l=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(l.from.id,l.to.id)}}},{key:\"deleteSelected\",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode=\"delete\";var e=this.selectionHandler.getSelectedNodeIds(),i=this.selectionHandler.getSelectedEdgeIds(),n=void 0;if(e.length>0){for(var o=0;o<e.length;o++)if(!0===this.body.nodes[e[o]].isCluster)return void alert(this.options.locales[this.options.locale].deleteClusterError||this.options.locales.en.deleteClusterError);\"function\"==typeof this.options.deleteNode&&(n=this.options.deleteNode)}else i.length>0&&\"function\"==typeof this.options.deleteEdge&&(n=this.options.deleteEdge);if(\"function\"==typeof n){var r={nodes:e,edges:i};if(2!==n.length)throw new Error(\"The function for delete does not support two arguments (data, callback)\");n(r,(function(e){null!=e&&\"delete\"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit(\"startSimulation\"),t.showManipulatorToolbar()):(t.body.emitter.emit(\"startSimulation\"),t.showManipulatorToolbar())}))}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit(\"startSimulation\"),this.showManipulatorToolbar()}},{key:\"_setup\",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:\"_createWrappers\",value:function(){var t,e;(void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement(\"div\"),this.manipulationDiv.className=\"vis-manipulation\",!0===this.editMode?this.manipulationDiv.style.display=\"block\":this.manipulationDiv.style.display=\"none\",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement(\"div\"),this.editModeDiv.className=\"vis-edit-mode\",!0===this.editMode?this.editModeDiv.style.display=\"none\":this.editModeDiv.style.display=\"block\",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv)&&(this.closeDiv=document.createElement(\"button\"),this.closeDiv.className=\"vis-close\",this.closeDiv.setAttribute(\"aria-label\",null!==(t=null===(e=this.options.locales[this.options.locale])||void 0===e?void 0:e.close)&&void 0!==t?t:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:\"_getNewTargetNode\",value:function(t,e){var i=nm({},this.options.controlNodeStyle);i.id=\"targetNode\"+Ax(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var n=this.body.functions.createNode(i);return n.shape.boundingBox={left:t,right:t,top:e,bottom:e},n}},{key:\"_createEditButton\",value:function(){var t;this._clean(),this.manipulationDOM={},Ky(this.editModeDiv);var e=this.options.locales[this.options.locale],i=this._createButton(\"editMode\",\"vis-edit vis-edit-mode\",e.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(i),this._bindElementEvents(i,zn(t=this.toggleEditMode).call(t,this))}},{key:\"_clean\",value:function(){this.inMode=!1,!0===this.guiEnabled&&(Ky(this.editModeDiv),Ky(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit(\"restorePhysics\")}},{key:\"_cleanupDOMEventListeners\",value:function(){var t,e,i=aT(ff(t=this._domEventListenerCleanupQueue).call(t,0));try{for(i.s();!(e=i.n()).done;){(0,e.value)()}}catch(t){i.e(t)}finally{i.f()}}},{key:\"_removeManipulationDOM\",value:function(){this._clean(),Ky(this.manipulationDiv),Ky(this.editModeDiv),Ky(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}},{key:\"_createSeperator\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM[\"seperatorLineDiv\"+t]=document.createElement(\"div\"),this.manipulationDOM[\"seperatorLineDiv\"+t].className=\"vis-separator-line\",this.manipulationDiv.appendChild(this.manipulationDOM[\"seperatorLineDiv\"+t])}},{key:\"_createAddNodeButton\",value:function(t){var e,i=this._createButton(\"addNode\",\"vis-add\",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,zn(e=this.addNodeMode).call(e,this))}},{key:\"_createAddEdgeButton\",value:function(t){var e,i=this._createButton(\"addEdge\",\"vis-connect\",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,zn(e=this.addEdgeMode).call(e,this))}},{key:\"_createEditNodeButton\",value:function(t){var e,i=this._createButton(\"editNode\",\"vis-edit\",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,zn(e=this.editNode).call(e,this))}},{key:\"_createEditEdgeButton\",value:function(t){var e,i=this._createButton(\"editEdge\",\"vis-edit\",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,zn(e=this.editEdgeMode).call(e,this))}},{key:\"_createDeleteButton\",value:function(t){var e,i;i=this.options.rtl?\"vis-delete-rtl\":\"vis-delete\";var n=this._createButton(\"delete\",i,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(n),this._bindElementEvents(n,zn(e=this.deleteSelected).call(e,this))}},{key:\"_createBackButton\",value:function(t){var e,i=this._createButton(\"back\",\"vis-back\",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,zn(e=this.showManipulatorToolbar).call(e,this))}},{key:\"_createButton\",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"vis-label\";return this.manipulationDOM[t+\"Div\"]=document.createElement(\"button\"),this.manipulationDOM[t+\"Div\"].className=\"vis-button \"+e,this.manipulationDOM[t+\"Label\"]=document.createElement(\"div\"),this.manipulationDOM[t+\"Label\"].className=n,this.manipulationDOM[t+\"Label\"].innerText=i,this.manipulationDOM[t+\"Div\"].appendChild(this.manipulationDOM[t+\"Label\"]),this.manipulationDOM[t+\"Div\"]}},{key:\"_createDescription\",value:function(t){this.manipulationDOM.descriptionLabel=document.createElement(\"div\"),this.manipulationDOM.descriptionLabel.className=\"vis-none\",this.manipulationDOM.descriptionLabel.innerText=t,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}},{key:\"_temporaryBindEvent\",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:\"_temporaryBindUI\",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error(\"This UI function does not exist. Typo? You tried: \"+t+\" possible are: \"+gv(bu(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:\"_unbindTemporaryUIs\",value:function(){for(var t in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:\"_unbindTemporaryEvents\",value:function(){for(var t=0;t<this.temporaryEventFunctions.length;t++){var e=this.temporaryEventFunctions[t].event,i=this.temporaryEventFunctions[t].boundFunction;this.body.emitter.off(e,i)}this.temporaryEventFunctions=[]}},{key:\"_bindElementEvents\",value:function(t,e){var i=new Wm(t,{});IC(i,e),this._domEventListenerCleanupQueue.push((function(){i.destroy()}));var n=function(t){var i=t.keyCode,n=t.key;\"Enter\"!==n&&\" \"!==n&&13!==i&&32!==i||e()};t.addEventListener(\"keyup\",n,!1),this._domEventListenerCleanupQueue.push((function(){t.removeEventListener(\"keyup\",n,!1)}))}},{key:\"_cleanupTemporaryNodesAndEdges\",value:function(){for(var t=0;t<this.temporaryIds.edges.length;t++){var e;this.body.edges[this.temporaryIds.edges[t]].disconnect(),delete this.body.edges[this.temporaryIds.edges[t]];var i,n=Fp(e=this.body.edgeIndices).call(e,this.temporaryIds.edges[t]);if(-1!==n)ff(i=this.body.edgeIndices).call(i,n,1)}for(var o=0;o<this.temporaryIds.nodes.length;o++){var r;delete this.body.nodes[this.temporaryIds.nodes[o]];var s,a=Fp(r=this.body.nodeIndices).call(r,this.temporaryIds.nodes[o]);if(-1!==a)ff(s=this.body.nodeIndices).call(s,a,1)}this.temporaryIds={nodes:[],edges:[]}}},{key:\"_controlNodeTouch\",value:function(t){this.selectionHandler.unselectAll(),this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=un({},this.body.view.translation)}},{key:\"_controlNodeDragStart\",value:function(){var t=this.lastTouch,e=this.selectionHandler._pointerToPositionObject(t),i=this.body.nodes[this.temporaryIds.nodes[0]],n=this.body.nodes[this.temporaryIds.nodes[1]],o=this.body.edges[this.edgeBeingEditedId];this.selectedControlNode=void 0;var r=i.isOverlappingWith(e),s=n.isOverlappingWith(e);!0===r?(this.selectedControlNode=i,o.edgeType.from=i):!0===s&&(this.selectedControlNode=n,o.edgeType.to=n),void 0!==this.selectedControlNode&&this.selectionHandler.selectObject(this.selectedControlNode),this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDrag\",value:function(t){this.body.emitter.emit(\"disablePhysics\");var e=this.body.functions.getPointer(t.center),i=this.canvas.DOMtoCanvas(e);void 0!==this.selectedControlNode?(this.selectedControlNode.x=i.x,this.selectedControlNode.y=i.y):this.interactionHandler.onDrag(t),this.body.emitter.emit(\"_redraw\")}},{key:\"_controlNodeDragEnd\",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),n=this.body.edges[this.edgeBeingEditedId];if(void 0!==this.selectedControlNode){this.selectionHandler.unselectAll();for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),r=void 0,s=o.length-1;s>=0;s--)if(o[s]!==this.selectedControlNode.id){r=this.body.nodes[o[s]];break}if(void 0!==r&&void 0!==this.selectedControlNode)if(!0===r.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(r.id,n.to.id):this._performEditEdge(n.from.id,r.id)}else n.updateEdgeType(),this.body.emitter.emit(\"restorePhysics\");this.body.emitter.emit(\"_redraw\")}}},{key:\"_handleConnect\",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=un({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var n=this._getNewTargetNode(i.x,i.y);this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id);var o=this.body.functions.createEdge({id:\"connectionEdge\"+Ax(),from:i.id,to:n.id,physics:!1,smooth:{enabled:!0,type:\"continuous\",roundness:.5}});this.body.edges[o.id]=o,this.body.edgeIndices.push(o.id),this.temporaryIds.nodes.push(n.id),this.temporaryIds.edges.push(o.id)}this.touchTime=(new Date).valueOf()}}},{key:\"_dragControlNode\",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),n=void 0;void 0!==this.temporaryIds.edges[0]&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),r=void 0,s=o.length-1;s>=0;s--){var a;if(-1===Fp(a=this.temporaryIds.nodes).call(a,o[s])){r=this.body.nodes[o[s]];break}}if(t.controlEdge={from:n,to:r?r.id:void 0},this.selectionHandler.generateClickEvent(\"controlNodeDragging\",t,e),void 0!==this.temporaryIds.nodes[0]){var h=this.body.nodes[this.temporaryIds.nodes[0]];h.x=this.canvas._XconvertDOMtoCanvas(e.x),h.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit(\"_redraw\")}else this.interactionHandler.onDrag(t)}},{key:\"_finishConnect\",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),n=void 0;void 0!==this.temporaryIds.edges[0]&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),r=void 0,s=o.length-1;s>=0;s--){var a;if(-1===Fp(a=this.temporaryIds.nodes).call(a,o[s])){r=this.body.nodes[o[s]];break}}this._cleanupTemporaryNodesAndEdges(),void 0!==r&&(!0===r.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[n]&&void 0!==this.body.nodes[r.id]&&this._performAddEdge(n,r.id)),t.controlEdge={from:n,to:r?r.id:void 0},this.selectionHandler.generateClickEvent(\"controlNodeDragEnd\",t,e),this.body.emitter.emit(\"_redraw\")}},{key:\"_dragStartEdge\",value:function(t){var e=this.lastTouch;this.selectionHandler.generateClickEvent(\"dragStart\",t,e,void 0,!0)}},{key:\"_performAddNode\",value:function(t){var e=this,i={id:Ax(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:\"new\"};if(\"function\"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error(\"The function for add does not support two arguments (data,callback)\");this.options.addNode(i,(function(t){null!=t&&\"addNode\"===e.inMode&&e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar()}))}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:\"_performAddEdge\",value:function(t,e){var i=this,n={from:t,to:e};if(\"function\"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error(\"The function for connect does not support two arguments (data,callback)\");this.options.addEdge(n,(function(t){null!=t&&\"addEdge\"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())}))}else this.body.data.edges.getDataSet().add(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:\"_performEditEdge\",value:function(t,e){var i=this,n={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges.get(this.edgeBeingEditedId).label},o=this.options.editEdge;if(\"object\"===Qc(o)&&(o=o.editWithoutDrag),\"function\"==typeof o){if(2!==o.length)throw new Error(\"The function for edit does not support two arguments (data, callback)\");o(n,(function(t){null==t||\"editEdge\"!==i.inMode?(i.body.edges[n.id].updateEdgeType(),i.body.emitter.emit(\"_redraw\"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())}))}else this.body.data.edges.getDataSet().update(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}(),dT=\"string\",cT=\"boolean\",uT=\"number\",fT=\"array\",pT=\"object\",vT=[\"arrow\",\"bar\",\"box\",\"circle\",\"crow\",\"curve\",\"diamond\",\"image\",\"inv_curve\",\"inv_triangle\",\"triangle\",\"vee\"],gT={borderWidth:{number:uT},borderWidthSelected:{number:uT,undefined:\"undefined\"},brokenImage:{string:dT,undefined:\"undefined\"},chosen:{label:{boolean:cT,function:\"function\"},node:{boolean:cT,function:\"function\"},__type__:{object:pT,boolean:cT}},color:{border:{string:dT},background:{string:dT},highlight:{border:{string:dT},background:{string:dT},__type__:{object:pT,string:dT}},hover:{border:{string:dT},background:{string:dT},__type__:{object:pT,string:dT}},__type__:{object:pT,string:dT}},opacity:{number:uT,undefined:\"undefined\"},fixed:{x:{boolean:cT},y:{boolean:cT},__type__:{object:pT,boolean:cT}},font:{align:{string:dT},color:{string:dT},size:{number:uT},face:{string:dT},background:{string:dT},strokeWidth:{number:uT},strokeColor:{string:dT},vadjust:{number:uT},multi:{boolean:cT,string:dT},bold:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},boldital:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},ital:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},mono:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},__type__:{object:pT,string:dT}},group:{string:dT,number:uT,undefined:\"undefined\"},heightConstraint:{minimum:{number:uT},valign:{string:dT},__type__:{object:pT,boolean:cT,number:uT}},hidden:{boolean:cT},icon:{face:{string:dT},code:{string:dT},size:{number:uT},color:{string:dT},weight:{string:dT,number:uT},__type__:{object:pT}},id:{string:dT,number:uT},image:{selected:{string:dT,undefined:\"undefined\"},unselected:{string:dT,undefined:\"undefined\"},__type__:{object:pT,string:dT}},imagePadding:{top:{number:uT},right:{number:uT},bottom:{number:uT},left:{number:uT},__type__:{object:pT,number:uT}},label:{string:dT,undefined:\"undefined\"},labelHighlightBold:{boolean:cT},level:{number:uT,undefined:\"undefined\"},margin:{top:{number:uT},right:{number:uT},bottom:{number:uT},left:{number:uT},__type__:{object:pT,number:uT}},mass:{number:uT},physics:{boolean:cT},scaling:{min:{number:uT},max:{number:uT},label:{enabled:{boolean:cT},min:{number:uT},max:{number:uT},maxVisible:{number:uT},drawThreshold:{number:uT},__type__:{object:pT,boolean:cT}},customScalingFunction:{function:\"function\"},__type__:{object:pT}},shadow:{enabled:{boolean:cT},color:{string:dT},size:{number:uT},x:{number:uT},y:{number:uT},__type__:{object:pT,boolean:cT}},shape:{string:[\"custom\",\"ellipse\",\"circle\",\"database\",\"box\",\"text\",\"image\",\"circularImage\",\"diamond\",\"dot\",\"star\",\"triangle\",\"triangleDown\",\"square\",\"icon\",\"hexagon\"]},ctxRenderer:{function:\"function\"},shapeProperties:{borderDashes:{boolean:cT,array:fT},borderRadius:{number:uT},interpolation:{boolean:cT},useImageSize:{boolean:cT},useBorderWithImage:{boolean:cT},coordinateOrigin:{string:[\"center\",\"top-left\"]},__type__:{object:pT}},size:{number:uT},title:{string:dT,dom:\"dom\",undefined:\"undefined\"},value:{number:uT,undefined:\"undefined\"},widthConstraint:{minimum:{number:uT},maximum:{number:uT},__type__:{object:pT,boolean:cT,number:uT}},x:{number:uT},y:{number:uT},__type__:{object:pT}},yT={configure:{enabled:{boolean:cT},filter:{boolean:cT,string:dT,array:fT,function:\"function\"},container:{dom:\"dom\"},showButton:{boolean:cT},__type__:{object:pT,boolean:cT,string:dT,array:fT,function:\"function\"}},edges:{arrows:{to:{enabled:{boolean:cT},scaleFactor:{number:uT},type:{string:vT},imageHeight:{number:uT},imageWidth:{number:uT},src:{string:dT},__type__:{object:pT,boolean:cT}},middle:{enabled:{boolean:cT},scaleFactor:{number:uT},type:{string:vT},imageWidth:{number:uT},imageHeight:{number:uT},src:{string:dT},__type__:{object:pT,boolean:cT}},from:{enabled:{boolean:cT},scaleFactor:{number:uT},type:{string:vT},imageWidth:{number:uT},imageHeight:{number:uT},src:{string:dT},__type__:{object:pT,boolean:cT}},__type__:{string:[\"from\",\"to\",\"middle\"],object:pT}},endPointOffset:{from:{number:uT},to:{number:uT},__type__:{object:pT,number:uT}},arrowStrikethrough:{boolean:cT},background:{enabled:{boolean:cT},color:{string:dT},size:{number:uT},dashes:{boolean:cT,array:fT},__type__:{object:pT,boolean:cT}},chosen:{label:{boolean:cT,function:\"function\"},edge:{boolean:cT,function:\"function\"},__type__:{object:pT,boolean:cT}},color:{color:{string:dT},highlight:{string:dT},hover:{string:dT},inherit:{string:[\"from\",\"to\",\"both\"],boolean:cT},opacity:{number:uT},__type__:{object:pT,string:dT}},dashes:{boolean:cT,array:fT},font:{color:{string:dT},size:{number:uT},face:{string:dT},background:{string:dT},strokeWidth:{number:uT},strokeColor:{string:dT},align:{string:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},vadjust:{number:uT},multi:{boolean:cT,string:dT},bold:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},boldital:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},ital:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},mono:{color:{string:dT},size:{number:uT},face:{string:dT},mod:{string:dT},vadjust:{number:uT},__type__:{object:pT,string:dT}},__type__:{object:pT,string:dT}},hidden:{boolean:cT},hoverWidth:{function:\"function\",number:uT},label:{string:dT,undefined:\"undefined\"},labelHighlightBold:{boolean:cT},length:{number:uT,undefined:\"undefined\"},physics:{boolean:cT},scaling:{min:{number:uT},max:{number:uT},label:{enabled:{boolean:cT},min:{number:uT},max:{number:uT},maxVisible:{number:uT},drawThreshold:{number:uT},__type__:{object:pT,boolean:cT}},customScalingFunction:{function:\"function\"},__type__:{object:pT}},selectionWidth:{function:\"function\",number:uT},selfReferenceSize:{number:uT},selfReference:{size:{number:uT},angle:{number:uT},renderBehindTheNode:{boolean:cT},__type__:{object:pT}},shadow:{enabled:{boolean:cT},color:{string:dT},size:{number:uT},x:{number:uT},y:{number:uT},__type__:{object:pT,boolean:cT}},smooth:{enabled:{boolean:cT},type:{string:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"]},roundness:{number:uT},forceDirection:{string:[\"horizontal\",\"vertical\",\"none\"],boolean:cT},__type__:{object:pT,boolean:cT}},title:{string:dT,undefined:\"undefined\"},width:{number:uT},widthConstraint:{maximum:{number:uT},__type__:{object:pT,boolean:cT,number:uT}},value:{number:uT,undefined:\"undefined\"},__type__:{object:pT}},groups:{useDefaultGroups:{boolean:cT},__any__:gT,__type__:{object:pT}},interaction:{dragNodes:{boolean:cT},dragView:{boolean:cT},hideEdgesOnDrag:{boolean:cT},hideEdgesOnZoom:{boolean:cT},hideNodesOnDrag:{boolean:cT},hover:{boolean:cT},keyboard:{enabled:{boolean:cT},speed:{x:{number:uT},y:{number:uT},zoom:{number:uT},__type__:{object:pT}},bindToWindow:{boolean:cT},autoFocus:{boolean:cT},__type__:{object:pT,boolean:cT}},multiselect:{boolean:cT},navigationButtons:{boolean:cT},selectable:{boolean:cT},selectConnectedEdges:{boolean:cT},hoverConnectedEdges:{boolean:cT},tooltipDelay:{number:uT},zoomView:{boolean:cT},zoomSpeed:{number:uT},__type__:{object:pT}},layout:{randomSeed:{undefined:\"undefined\",number:uT,string:dT},improvedLayout:{boolean:cT},clusterThreshold:{number:uT},hierarchical:{enabled:{boolean:cT},levelSeparation:{number:uT},nodeSpacing:{number:uT},treeSpacing:{number:uT},blockShifting:{boolean:cT},edgeMinimization:{boolean:cT},parentCentralization:{boolean:cT},direction:{string:[\"UD\",\"DU\",\"LR\",\"RL\"]},sortMethod:{string:[\"hubsize\",\"directed\"]},shakeTowards:{string:[\"leaves\",\"roots\"]},__type__:{object:pT,boolean:cT}},__type__:{object:pT}},manipulation:{enabled:{boolean:cT},initiallyActive:{boolean:cT},addNode:{boolean:cT,function:\"function\"},addEdge:{boolean:cT,function:\"function\"},editNode:{function:\"function\"},editEdge:{editWithoutDrag:{function:\"function\"},__type__:{object:pT,boolean:cT,function:\"function\"}},deleteNode:{boolean:cT,function:\"function\"},deleteEdge:{boolean:cT,function:\"function\"},controlNodeStyle:gT,__type__:{object:pT,boolean:cT}},nodes:gT,physics:{enabled:{boolean:cT},barnesHut:{theta:{number:uT},gravitationalConstant:{number:uT},centralGravity:{number:uT},springLength:{number:uT},springConstant:{number:uT},damping:{number:uT},avoidOverlap:{number:uT},__type__:{object:pT}},forceAtlas2Based:{theta:{number:uT},gravitationalConstant:{number:uT},centralGravity:{number:uT},springLength:{number:uT},springConstant:{number:uT},damping:{number:uT},avoidOverlap:{number:uT},__type__:{object:pT}},repulsion:{centralGravity:{number:uT},springLength:{number:uT},springConstant:{number:uT},nodeDistance:{number:uT},damping:{number:uT},__type__:{object:pT}},hierarchicalRepulsion:{centralGravity:{number:uT},springLength:{number:uT},springConstant:{number:uT},nodeDistance:{number:uT},damping:{number:uT},avoidOverlap:{number:uT},__type__:{object:pT}},maxVelocity:{number:uT},minVelocity:{number:uT},solver:{string:[\"barnesHut\",\"repulsion\",\"hierarchicalRepulsion\",\"forceAtlas2Based\"]},stabilization:{enabled:{boolean:cT},iterations:{number:uT},updateInterval:{number:uT},onlyDynamicEdges:{boolean:cT},fit:{boolean:cT},__type__:{object:pT,boolean:cT}},timestep:{number:uT},adaptiveTimestep:{boolean:cT},wind:{x:{number:uT},y:{number:uT},__type__:{object:pT}},__type__:{object:pT,boolean:cT}},autoResize:{boolean:cT},clickToUse:{boolean:cT},locale:{string:dT},locales:{__any__:{any:\"any\"},__type__:{object:pT}},height:{string:dT},width:{string:dT},__type__:{object:pT}},mT={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#97C2FC\"],highlight:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]},hover:{border:[\"color\",\"#2B7CE9\"],background:[\"color\",\"#D2E5FF\"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[0,0,50,1],strokeColor:[\"color\",\"#ffffff\"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:[\"ellipse\",\"box\",\"circle\",\"database\",\"diamond\",\"dot\",\"square\",\"star\",\"text\",\"triangle\",\"triangleDown\",\"hexagon\"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:\"arrow\"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:\"arrow\"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:\"arrow\"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:[\"color\",\"#848484\"],highlight:[\"color\",\"#848484\"],hover:[\"color\",\"#848484\"],inherit:[\"from\",\"to\",\"both\",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:[\"color\",\"#343434\"],size:[14,0,100,1],face:[\"arial\",\"verdana\",\"tahoma\"],background:[\"color\",\"none\"],strokeWidth:[2,0,50,1],strokeColor:[\"color\",\"#ffffff\"],align:[\"horizontal\",\"top\",\"middle\",\"bottom\"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:\"rgba(0,0,0,0.5)\",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:[\"dynamic\",\"continuous\",\"discrete\",\"diagonalCross\",\"straightCross\",\"horizontal\",\"vertical\",\"curvedCW\",\"curvedCCW\",\"cubicBezier\"],forceDirection:[\"horizontal\",\"vertical\",\"none\"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:[\"UD\",\"DU\",\"LR\",\"RL\"],sortMethod:[\"hubsize\",\"directed\"],shakeTowards:[\"leaves\",\"roots\"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:[\"barnesHut\",\"forceAtlas2Based\",\"repulsion\",\"hierarchicalRepulsion\"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},bT=function(t,e,i){var n;return!(!Nf(t).call(t,\"physics\")||!Nf(n=mT.physics.solver).call(n,e)||i.physics.solver===e||\"wind\"===e)},wT=Object.freeze({__proto__:null,configuratorHideOption:bT,allOptions:yT,configureOptions:mT}),kT=function(){function t(){Yd(this,t)}return Kd(t,[{key:\"getDistances\",value:function(t,e,i){for(var n={},o=t.edges,r=0;r<e.length;r++){var s={};n[e[r]]=s;for(var a=0;a<e.length;a++)s[e[a]]=r==a?0:1e9}for(var h=0;h<i.length;h++){var l=o[i[h]];!0===l.connected&&void 0!==n[l.fromId]&&void 0!==n[l.toId]&&(n[l.fromId][l.toId]=1,n[l.toId][l.fromId]=1)}for(var d=e.length,c=0;c<d;c++)for(var u=e[c],f=n[u],p=0;p<d-1;p++)for(var v=e[p],g=n[v],y=p+1;y<d;y++){var m=e[y],b=n[m],w=Math.min(g[m],g[u]+f[m]);g[m]=w,b[v]=w}return n}}]),t}(),_T=function(){function t(e,i,n){Yd(this,t),this.body=e,this.springLength=i,this.springConstant=n,this.distanceSolver=new kT}return Kd(t,[{key:\"setOptions\",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:\"solve\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(n),this._createK_matrix(n),this._createE_matrix();for(var o=.01,r=1,s=0,a=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),h=5,l=1e9,d=0,c=0,u=0,f=0,p=0;l>o&&s<a;){s+=1;var v=this._getHighestEnergyNode(i),g=Kc(v,4);for(d=g[0],l=g[1],c=g[2],u=g[3],f=l,p=0;f>r&&p<h;){p+=1,this._moveNode(d,c,u);var y=this._getEnergy(d),m=Kc(y,3);f=m[0],c=m[1],u=m[2]}}}},{key:\"_getHighestEnergyNode\",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,n=0,o=e[0],r=0,s=0,a=0;a<e.length;a++){var h=e[a];if(!0!==i[h].predefinedPosition||!0===i[h].isCluster&&!0===t||!0!==i[h].options.fixed.x||!0!==i[h].options.fixed.y){var l=Kc(this._getEnergy(h),3),d=l[0],c=l[1],u=l[2];n<d&&(n=d,o=h,r=c,s=u)}}return[o,n,r,s]}},{key:\"_getEnergy\",value:function(t){var e=Kc(this.E_sums[t],2),i=e[0],n=e[1];return[Math.sqrt(Math.pow(i,2)+Math.pow(n,2)),i,n]}},{key:\"_moveNode\",value:function(t,e,i){for(var n=this.body.nodeIndices,o=this.body.nodes,r=0,s=0,a=0,h=o[t].x,l=o[t].y,d=this.K_matrix[t],c=this.L_matrix[t],u=0;u<n.length;u++){var f=n[u];if(f!==t){var p=o[f].x,v=o[f].y,g=d[f],y=c[f],m=1/Math.pow(Math.pow(h-p,2)+Math.pow(l-v,2),1.5);r+=g*(1-y*Math.pow(l-v,2)*m),s+=g*(y*(h-p)*(l-v)*m),a+=g*(1-y*Math.pow(h-p,2)*m)}}var b=(e/r+i/s)/(s/r-a/s),w=-(s*b+e)/r;o[t].x+=w,o[t].y+=b,this._updateE_matrix(t)}},{key:\"_createL_matrix\",value:function(t){var e=this.body.nodeIndices,i=this.springLength;this.L_matrix=[];for(var n=0;n<e.length;n++){this.L_matrix[e[n]]={};for(var o=0;o<e.length;o++)this.L_matrix[e[n]][e[o]]=i*t[e[n]][e[o]]}}},{key:\"_createK_matrix\",value:function(t){var e=this.body.nodeIndices,i=this.springConstant;this.K_matrix=[];for(var n=0;n<e.length;n++){this.K_matrix[e[n]]={};for(var o=0;o<e.length;o++)this.K_matrix[e[n]][e[o]]=i*Math.pow(t[e[n]][e[o]],-2)}}},{key:\"_createE_matrix\",value:function(){var t=this.body.nodeIndices,e=this.body.nodes;this.E_matrix={},this.E_sums={};for(var i=0;i<t.length;i++)this.E_matrix[t[i]]=[];for(var n=0;n<t.length;n++){for(var o=t[n],r=e[o].x,s=e[o].y,a=0,h=0,l=n;l<t.length;l++){var d=t[l];if(d!==o){var c=e[d].x,u=e[d].y,f=1/Math.sqrt(Math.pow(r-c,2)+Math.pow(s-u,2));this.E_matrix[o][l]=[this.K_matrix[o][d]*(r-c-this.L_matrix[o][d]*(r-c)*f),this.K_matrix[o][d]*(s-u-this.L_matrix[o][d]*(s-u)*f)],this.E_matrix[d][n]=this.E_matrix[o][l],a+=this.E_matrix[o][l][0],h+=this.E_matrix[o][l][1]}}this.E_sums[o]=[a,h]}}},{key:\"_updateE_matrix\",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,n=this.E_matrix[t],o=this.K_matrix[t],r=this.L_matrix[t],s=i[t].x,a=i[t].y,h=0,l=0,d=0;d<e.length;d++){var c=e[d];if(c!==t){var u=n[d],f=u[0],p=u[1],v=i[c].x,g=i[c].y,y=1/Math.sqrt(Math.pow(s-v,2)+Math.pow(a-g,2)),m=o[c]*(s-v-r[c]*(s-v)*y),b=o[c]*(a-g-r[c]*(a-g)*y);n[d]=[m,b],h+=m,l+=b;var w=this.E_sums[c];w[0]+=m-f,w[1]+=b-p}}this.E_sums[t]=[h,l]}}]),t}();function xT(t,e,i){var n,o,r,s,a=this;if(!(this instanceof xT))throw new SyntaxError(\"Constructor must be called with the new operator\");this.options={},this.defaultOptions={locale:\"en\",locales:Tb,clickToUse:!1},un(this.options,this.defaultOptions),this.body={container:t,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:zn(n=this.on).call(n,this),off:zn(o=this.off).call(o,this),emit:zn(r=this.emit).call(r,this),once:zn(s=this.once).call(s,this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}},selectionBox:{show:!1,position:{start:{x:0,y:0},end:{x:0,y:0}}}},this.bindEventListeners(),this.images=new Pb((function(){return a.body.emitter.emit(\"_requestRedraw\")})),this.groups=new tk,this.canvas=new zC(this.body),this.selectionHandler=new HS(this.body,this.canvas),this.interactionHandler=new WC(this.body,this.canvas,this.selectionHandler),this.view=new FC(this.body,this.canvas),this.renderer=new PC(this.body,this.canvas),this.physics=new xC(this.body),this.layoutEngine=new sT(this.body),this.clustering=new SC(this.body),this.manipulation=new lT(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new gO(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new uC(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new _T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}function ET(t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e].redundant=t[e].used,t[e].used=[])}function OT(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&t[e].redundant){for(var i=0;i<t[e].redundant.length;i++)t[e].redundant[i].parentNode.removeChild(t[e].redundant[i]);t[e].redundant=[]}}function CT(t,e,i){var n;return Object.prototype.hasOwnProperty.call(e,t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElementNS(\"http://www.w3.org/2000/svg\",t),i.appendChild(n)):(n=document.createElementNS(\"http://www.w3.org/2000/svg\",t),e[t]={used:[],redundant:[]},i.appendChild(n)),e[t].used.push(n),n}Wn(xT.prototype),xT.prototype.setOptions=function(t){var e=this;if(null===t&&(t=void 0),void 0!==t){!0===Um.validate(t,yT)&&console.error(\"%cErrors have been found in the supplied options object.\",Vm);if(em([\"locale\",\"locales\",\"clickToUse\"],this.options,t),void 0!==t.locale&&(t.locale=function(t,e){try{var i=Kc(e.split(/[-_ /]/,2),2),n=i[0],o=i[1],r=null!=n?n.toLowerCase():null,s=null!=o?o.toUpperCase():null;if(r&&s){var a,h=r+\"-\"+s;if(Object.prototype.hasOwnProperty.call(t,h))return h;console.warn(su(a=\"Unknown variant \".concat(s,\" of language \")).call(a,r,\".\"))}if(r){var l=r;if(Object.prototype.hasOwnProperty.call(t,l))return l;console.warn(\"Unknown language \".concat(r))}return console.warn(\"Unknown locale \".concat(e,\", falling back to English.\")),\"en\"}catch(t){return console.error(t),console.warn(\"Unexpected error while normalizing locale \".concat(e,\", falling back to English.\")),\"en\"}}(t.locales||this.options.locales,t.locale)),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit(\"refreshNodes\"),\"configure\"in t&&(this.configurator||(this.configurator=new Hm(this,this.body.container,mT,this.canvas.pixelRatio,bT)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var i={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};nm(i.nodes,this.nodesHandler.options),nm(i.edges,this.edgesHandler.options),nm(i.layout,this.layoutEngine.options),nm(i.interaction,this.selectionHandler.options),nm(i.interaction,this.renderer.options),nm(i.interaction,this.interactionHandler.options),nm(i.manipulation,this.manipulation.options),nm(i.physics,this.physics.options),nm(i.global,this.canvas.options),nm(i.global,this.options),this.configurator.setModuleOptions(i)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new Rm(this.canvas.frame),this.activator.on(\"change\",(function(){e.body.emitter.emit(\"activate\")}))):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit(\"activate\")):this.body.emitter.emit(\"activate\"),this.canvas.setSize(),this.body.emitter.emit(\"startSimulation\")}},xT.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;for(var i in this.body.nodeIndices=[],this.body.edgeIndices=[],t)Object.prototype.hasOwnProperty.call(t,i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var o=e[n],r=t[o.fromId],s=t[o.toId],a=void 0!==r&&void 0!==s;!this.clustering._isClusteredEdge(n)&&!1===o.options.hidden&&a&&!1===r.options.hidden&&!1===s.options.hidden&&this.body.edgeIndices.push(o.id)}},xT.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on(\"_dataChanged\",(function(){t.edgesHandler._updateState(),t.body.emitter.emit(\"_dataUpdated\")})),this.body.emitter.on(\"_dataUpdated\",(function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit(\"startSimulation\"),t.body.emitter.emit(\"_requestRedraw\")}))},xT.prototype.setData=function(t){if(this.body.emitter.emit(\"resetPhysics\"),this.body.emitter.emit(\"_resetData\"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter \"dot\" or  parameter pair \"nodes\" and \"edges\", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.warn(\"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\");var e=Eb(t.dot);this.setData(e)}else if(t&&t.gephi){console.warn(\"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\");var i=Cb(t.gephi);this.setData(i)}else this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit(\"_dataChanged\"),this.body.emitter.emit(\"_dataLoaded\"),this.body.emitter.emit(\"initPhysics\")},xT.prototype.destroy=function(){for(var t in this.body.emitter.emit(\"destroy\"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images,this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&delete this.body.nodes[t];for(var e in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,e)&&delete this.body.edges[e];Ky(this.body.container)},xT.prototype._updateValueRange=function(t){var e,i=void 0,n=void 0,o=0;for(e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var r=t[e].getValue();void 0!==r&&(i=void 0===i?r:Math.min(r,i),n=void 0===n?r:Math.max(r,n),o+=r)}if(void 0!==i&&void 0!==n)for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&t[e].setValueRange(i,n,o)},xT.prototype.isActive=function(){return!this.activator||this.activator.active},xT.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},xT.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},xT.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},xT.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},xT.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},xT.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},xT.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},xT.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},xT.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},xT.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},xT.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)},xT.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)},xT.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)},xT.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)},xT.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)},xT.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},xT.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},xT.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},xT.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},xT.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},xT.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},xT.prototype.editNodeMode=function(){return console.warn(\"Deprecated: Please use editNode instead of editNodeMode.\"),this.manipulation.editNode.apply(this.manipulation,arguments)},xT.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},xT.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},xT.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},xT.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},xT.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)},xT.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},xT.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},xT.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},xT.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},xT.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},xT.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},xT.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},xT.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},xT.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},xT.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},xT.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)},xT.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)},xT.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},xT.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},xT.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},xT.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},xT.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()},xT.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},xT.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},xT.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},xT.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},xT.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},xT.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},xT.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},xT.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t};var ST=Object.freeze({__proto__:null,prepareElements:ET,cleanupElements:OT,resetElements:function(t){ET(t),OT(t),ET(t)},getSVGElement:CT,getDOMElement:function(t,e,i,n){var o;return Object.prototype.hasOwnProperty.call(e,t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElement(t),void 0!==n?i.insertBefore(o,n):i.appendChild(o)):(o=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==n?i.insertBefore(o,n):i.appendChild(o)),e[t].used.push(o),o},drawPoint:function(t,e,i,n,o,r){var s;if(\"circle\"==i.style?((s=CT(\"circle\",n,o)).setAttributeNS(null,\"cx\",t),s.setAttributeNS(null,\"cy\",e),s.setAttributeNS(null,\"r\",.5*i.size)):((s=CT(\"rect\",n,o)).setAttributeNS(null,\"x\",t-.5*i.size),s.setAttributeNS(null,\"y\",e-.5*i.size),s.setAttributeNS(null,\"width\",i.size),s.setAttributeNS(null,\"height\",i.size)),void 0!==i.styles&&s.setAttributeNS(null,\"style\",i.styles),s.setAttributeNS(null,\"class\",i.className+\" vis-point\"),r){var a=CT(\"text\",n,o);r.xOffset&&(t+=r.xOffset),r.yOffset&&(e+=r.yOffset),r.content&&(a.textContent=r.content),r.className&&a.setAttributeNS(null,\"class\",r.className+\" vis-label\"),a.setAttributeNS(null,\"x\",t),a.setAttributeNS(null,\"y\",e)}return s},drawBar:function(t,e,i,n,o,r,s,a){if(0!=n){n<0&&(e-=n*=-1);var h=CT(\"rect\",r,s);h.setAttributeNS(null,\"x\",t-.5*i),h.setAttributeNS(null,\"y\",e),h.setAttributeNS(null,\"width\",i),h.setAttributeNS(null,\"height\",n),h.setAttributeNS(null,\"class\",o),a&&h.setAttributeNS(null,\"style\",a)}}}),TT={Images:Pb,dotparser:Ob,gephiParser:Sb,allOptions:wT,convertDot:Eb,convertGephi:Cb},MT=Object.freeze({__proto__:null,network:TT,DOMutil:ST,util:Ym,data:Jx,Hammer:Wm,keycharm:jC,DataSet:Kx,DataView:$x,Queue:Yx,Network:xT});t.DOMutil=ST,t.DataSet=Kx,t.DataView=$x,t.Hammer=Wm,t.Network=xT,t.Queue=Yx,t.data=Jx,t.default=MT,t.keycharm=jC,t.network=TT,t.util=Ym,Object.defineProperty(t,\"__esModule\",{value:!0})}));\n",
              "//# sourceMappingURL=vis-network.min.js.map</script>\n",
              "            \n",
              "        \n",
              "<center>\n",
              "<h1></h1>\n",
              "</center>\n",
              "\n",
              "<!-- <link rel=\"stylesheet\" href=\"../node_modules/vis/dist/vis.min.css\" type=\"text/css\" />\n",
              "<script type=\"text/javascript\" src=\"../node_modules/vis/dist/vis.js\"> </script>-->\n",
              "        <link\n",
              "          href=\"https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css\"\n",
              "          rel=\"stylesheet\"\n",
              "          integrity=\"sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6\"\n",
              "          crossorigin=\"anonymous\"\n",
              "        />\n",
              "        <script\n",
              "          src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js\"\n",
              "          integrity=\"sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf\"\n",
              "          crossorigin=\"anonymous\"\n",
              "        ></script>\n",
              "\n",
              "\n",
              "        <center>\n",
              "          <h1></h1>\n",
              "        </center>\n",
              "        <style type=\"text/css\">\n",
              "\n",
              "             #mynetwork {\n",
              "                 width: 100%;\n",
              "                 height: 600px;\n",
              "                 background-color: #ffffff;\n",
              "                 border: 1px solid lightgray;\n",
              "                 position: relative;\n",
              "                 float: left;\n",
              "             }\n",
              "\n",
              "             \n",
              "\n",
              "             \n",
              "             #config {\n",
              "                 float: left;\n",
              "                 width: 400px;\n",
              "                 height: 600px;\n",
              "             }\n",
              "             \n",
              "\n",
              "             \n",
              "        </style>\n",
              "    </head>\n",
              "\n",
              "\n",
              "    <body>\n",
              "        <div class=\"card\" style=\"width: 100%\">\n",
              "            \n",
              "            \n",
              "            <div id=\"mynetwork\" class=\"card-body\"></div>\n",
              "        </div>\n",
              "\n",
              "        \n",
              "        \n",
              "            <div id=\"config\"></div>\n",
              "        \n",
              "\n",
              "        <script type=\"text/javascript\">\n",
              "\n",
              "              // initialize global variables.\n",
              "              var edges;\n",
              "              var nodes;\n",
              "              var allNodes;\n",
              "              var allEdges;\n",
              "              var nodeColors;\n",
              "              var originalNodes;\n",
              "              var network;\n",
              "              var container;\n",
              "              var options, data;\n",
              "              var filter = {\n",
              "                  item : '',\n",
              "                  property : '',\n",
              "                  value : []\n",
              "              };\n",
              "\n",
              "              \n",
              "\n",
              "              \n",
              "\n",
              "              // This method is responsible for drawing the graph, returns the drawn network\n",
              "              function drawGraph() {\n",
              "                  var container = document.getElementById('mynetwork');\n",
              "\n",
              "                  \n",
              "\n",
              "                  // parsing and collecting nodes and edges from the python\n",
              "                  nodes = new vis.DataSet([{\"color\": {\"background\": \"#f2c5a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#f2c5a5\", \"border\": \"#800080\"}}, \"description\": \"Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity.\", \"id\": \"Scale_Of_Power_Seeking\", \"instantiations\": [\"scale_of_power_seeking_TRUE\", \"scale_of_power_seeking_FALSE\"], \"label\": \"Scale_Of_Power_Seeking\\np=0.21\", \"node_type\": \"child\", \"posteriors\": {\"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"1.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"1.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.75\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.40\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.25\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.60\"}, \"priors\": {\"p(scale_of_power_seeking_FALSE)\": \"0.792\", \"p(scale_of_power_seeking_TRUE)\": \"0.208\", \"true_prob\": 0.208}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eScale_Of_Power_Seeking\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003ePower-seeking by AI systems scaling to the point of permanently disempowering all of humanity.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003escale_of_power_seeking_TRUE: 0.208\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003escale_of_power_seeking_FALSE: 0.792\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:20.8%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.208\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:79.2%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.792\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#f2c5a5\", \"border\": \"#FF00FF\", \"highlight\": {\"background\": \"#f2c5a5\", \"border\": \"#FF00FF\"}}, \"description\": \"Permanent and collective disempowerment of humanity relative to AI systems.\", \"id\": \"Human_Disempowerment\", \"instantiations\": [\"human_disempowerment_TRUE\", \"human_disempowerment_FALSE\"], \"label\": \"Human_Disempowerment\\np=0.21\", \"node_type\": \"leaf\", \"posteriors\": {\"p(human_disempowerment_FALSE|scale_of_power_seeking_FALSE)\": \"1.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_TRUE)\": \"0.0\", \"p(human_disempowerment_TRUE|scale_of_power_seeking_FALSE)\": \"0.0\", \"p(human_disempowerment_TRUE|scale_of_power_seeking_TRUE)\": \"1.0\"}, \"priors\": {\"p(human_disempowerment_FALSE)\": \"0.792\", \"p(human_disempowerment_TRUE)\": \"0.208\", \"true_prob\": 0.208}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eHuman_Disempowerment\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003ePermanent and collective disempowerment of humanity relative to AI systems.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ehuman_disempowerment_TRUE: 0.208\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ehuman_disempowerment_FALSE: 0.792\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:20.8%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.208\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:79.2%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.792\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#f2d9a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#f2d9a5\", \"border\": \"#800080\"}}, \"description\": \"Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives.\", \"id\": \"Misaligned_Power_Seeking\", \"instantiations\": [\"misaligned_power_seeking_TRUE\", \"misaligned_power_seeking_FALSE\"], \"label\": \"Misaligned_Power_Seeking\\np=0.34\", \"node_type\": \"child\", \"posteriors\": {\"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.75\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.95\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.10\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.90\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.25\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.05\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.90\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.10\"}, \"priors\": {\"p(misaligned_power_seeking_FALSE)\": \"0.662\", \"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"true_prob\": 0.338}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eMisaligned_Power_Seeking\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eDeployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003emisaligned_power_seeking_TRUE: 0.338\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003emisaligned_power_seeking_FALSE: 0.662\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:33.800000000000004%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.338\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:66.19999999999999%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.662\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#dbf2a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#dbf2a5\", \"border\": \"#800080\"}}, \"description\": \"AI systems with advanced capabilities, agentic planning, and strategic awareness.\", \"id\": \"APS_Systems\", \"instantiations\": [\"aps_systems_TRUE\", \"aps_systems_FALSE\"], \"label\": \"APS_Systems\\np=0.65\", \"node_type\": \"child\", \"posteriors\": {\"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\"}, \"priors\": {\"p(aps_systems_FALSE)\": \"0.35\", \"p(aps_systems_TRUE)\": \"0.65\", \"true_prob\": 0.65}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eAPS_Systems\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI systems with advanced capabilities, agentic planning, and strategic awareness.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eaps_systems_TRUE: 0.650\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eaps_systems_FALSE: 0.350\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:65.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.650\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:35.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.350\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#c4f2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#c4f2a5\", \"border\": \"#0000FF\"}}, \"description\": \"AI systems that outperform humans on tasks that grant significant power in the world.\", \"id\": \"Advanced_AI_Capability\", \"instantiations\": [\"advanced_ai_capability_TRUE\", \"advanced_ai_capability_FALSE\"], \"label\": \"Advanced_AI_Capability\\np=0.80\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(advanced_ai_capability_FALSE)\": \"0.20\", \"p(advanced_ai_capability_TRUE)\": \"0.80\", \"true_prob\": 0.8}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eAdvanced_AI_Capability\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI systems that outperform humans on tasks that grant significant power in the world.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eadvanced_ai_capability_TRUE: 0.800\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eadvanced_ai_capability_FALSE: 0.200\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.800\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.200\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#bcf2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#bcf2a5\", \"border\": \"#0000FF\"}}, \"description\": \"AI systems making and executing plans based on world models to achieve objectives.\", \"id\": \"Agentic_Planning\", \"instantiations\": [\"agentic_planning_TRUE\", \"agentic_planning_FALSE\"], \"label\": \"Agentic_Planning\\np=0.85\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(agentic_planning_FALSE)\": \"0.15\", \"p(agentic_planning_TRUE)\": \"0.85\", \"true_prob\": 0.85}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eAgentic_Planning\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI systems making and executing plans based on world models to achieve objectives.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eagentic_planning_TRUE: 0.850\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eagentic_planning_FALSE: 0.150\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.850\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.150\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#ccf2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#ccf2a5\", \"border\": \"#0000FF\"}}, \"description\": \"AI systems with models accurately representing power dynamics with humans.\", \"id\": \"Strategic_Awareness\", \"instantiations\": [\"strategic_awareness_TRUE\", \"strategic_awareness_FALSE\"], \"label\": \"Strategic_Awareness\\np=0.75\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(strategic_awareness_FALSE)\": \"0.25\", \"p(strategic_awareness_TRUE)\": \"0.75\", \"true_prob\": 0.75}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eStrategic_Awareness\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI systems with models accurately representing power dynamics with humans.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003estrategic_awareness_TRUE: 0.750\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003estrategic_awareness_FALSE: 0.250\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.750\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.250\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#f2e2a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#f2e2a5\", \"border\": \"#800080\"}}, \"description\": \"It is harder to build aligned systems than misaligned systems that are attractive to deploy.\", \"id\": \"Difficulty_Of_Alignment\", \"instantiations\": [\"difficulty_of_alignment_TRUE\", \"difficulty_of_alignment_FALSE\"], \"label\": \"Difficulty_Of_Alignment\\np=0.40\", \"node_type\": \"child\", \"posteriors\": {\"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.90\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.70\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.45\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.30\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.15\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.10\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.30\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.55\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.60\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.70\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.85\"}, \"priors\": {\"p(difficulty_of_alignment_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_TRUE)\": \"0.40\", \"true_prob\": 0.4}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eDifficulty_Of_Alignment\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eIt is harder to build aligned systems than misaligned systems that are attractive to deploy.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003edifficulty_of_alignment_TRUE: 0.400\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003edifficulty_of_alignment_FALSE: 0.600\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.400\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.600\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#ccf2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#ccf2a5\", \"border\": \"#0000FF\"}}, \"description\": \"AI systems with misaligned objectives tend to seek power as an instrumental goal.\", \"id\": \"Instrumental_Convergence\", \"instantiations\": [\"instrumental_convergence_TRUE\", \"instrumental_convergence_FALSE\"], \"label\": \"Instrumental_Convergence\\np=0.75\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(instrumental_convergence_FALSE)\": \"0.25\", \"p(instrumental_convergence_TRUE)\": \"0.75\", \"true_prob\": 0.75}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eInstrumental_Convergence\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI systems with misaligned objectives tend to seek power as an instrumental goal.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003einstrumental_convergence_TRUE: 0.750\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003einstrumental_convergence_FALSE: 0.250\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.750\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.250\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#c4f2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#c4f2a5\", \"border\": \"#0000FF\"}}, \"description\": \"Optimizing for proxy objectives breaks correlations with intended goals.\", \"id\": \"Problems_With_Proxies\", \"instantiations\": [\"problems_with_proxies_TRUE\", \"problems_with_proxies_FALSE\"], \"label\": \"Problems_With_Proxies\\np=0.80\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(problems_with_proxies_FALSE)\": \"0.20\", \"p(problems_with_proxies_TRUE)\": \"0.80\", \"true_prob\": 0.8}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eProblems_With_Proxies\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eOptimizing for proxy objectives breaks correlations with intended goals.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eproblems_with_proxies_TRUE: 0.800\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eproblems_with_proxies_FALSE: 0.200\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.800\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.200\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#d3f2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#d3f2a5\", \"border\": \"#0000FF\"}}, \"description\": \"Search processes can yield systems pursuing different objectives than intended.\", \"id\": \"Problems_With_Search\", \"instantiations\": [\"problems_with_search_TRUE\", \"problems_with_search_FALSE\"], \"label\": \"Problems_With_Search\\np=0.70\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(problems_with_search_FALSE)\": \"0.30\", \"p(problems_with_search_TRUE)\": \"0.70\", \"true_prob\": 0.7}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eProblems_With_Search\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eSearch processes can yield systems pursuing different objectives than intended.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eproblems_with_search_TRUE: 0.700\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eproblems_with_search_FALSE: 0.300\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.700\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.300\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#d3f2a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#d3f2a5\", \"border\": \"#800080\"}}, \"description\": \"Decisions to deploy potentially misaligned AI systems.\", \"id\": \"Deployment_Decisions\", \"instantiations\": [\"deployment_decisions_DEPLOY\", \"deployment_decisions_WITHHOLD\"], \"label\": \"Deployment_Decisions\\np=0.70\", \"node_type\": \"child\", \"posteriors\": {\"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.75\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.90\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.30\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.60\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.25\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.10\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.70\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.40\"}, \"priors\": {\"p(deployment_decisions_DEPLOY)\": \"0.70\", \"p(deployment_decisions_WITHHOLD)\": \"0.30\", \"true_prob\": 0.7}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eDeployment_Decisions\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eDecisions to deploy potentially misaligned AI systems.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003edeployment_decisions_DEPLOY: 0.700\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003edeployment_decisions_WITHHOLD: 0.300\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.700\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.300\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#c4f2a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#c4f2a5\", \"border\": \"#800080\"}}, \"description\": \"Strong incentives to build and deploy APS systems.\", \"id\": \"Incentives_To_Build_APS\", \"instantiations\": [\"incentives_to_build_aps_STRONG\", \"incentives_to_build_aps_WEAK\"], \"label\": \"Incentives_To_Build_APS\\np=0.80\", \"node_type\": \"child\", \"posteriors\": {\"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.95\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.80\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.70\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.05\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.20\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.70\"}, \"priors\": {\"p(incentives_to_build_aps_STRONG)\": \"0.80\", \"p(incentives_to_build_aps_WEAK)\": \"0.20\", \"true_prob\": 0.8}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eIncentives_To_Build_APS\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eStrong incentives to build and deploy APS systems.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eincentives_to_build_aps_STRONG: 0.800\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eincentives_to_build_aps_WEAK: 0.200\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.800\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.200\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#bcf2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#bcf2a5\", \"border\": \"#0000FF\"}}, \"description\": \"APS systems are very useful for many valuable tasks.\", \"id\": \"Usefulness_Of_APS\", \"instantiations\": [\"usefulness_of_aps_HIGH\", \"usefulness_of_aps_LOW\"], \"label\": \"Usefulness_Of_APS\\np=0.85\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(usefulness_of_aps_HIGH)\": \"0.85\", \"p(usefulness_of_aps_LOW)\": \"0.15\", \"true_prob\": 0.85}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eUsefulness_Of_APS\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAPS systems are very useful for many valuable tasks.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eusefulness_of_aps_HIGH: 0.850\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eusefulness_of_aps_LOW: 0.150\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.850\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.150\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#ccf2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#ccf2a5\", \"border\": \"#0000FF\"}}, \"description\": \"Competitive pressures between AI developers.\", \"id\": \"Competitive_Dynamics\", \"instantiations\": [\"competitive_dynamics_STRONG\", \"competitive_dynamics_WEAK\"], \"label\": \"Competitive_Dynamics\\np=0.75\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(competitive_dynamics_STRONG)\": \"0.75\", \"p(competitive_dynamics_WEAK)\": \"0.25\", \"true_prob\": 0.75}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eCompetitive_Dynamics\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eCompetitive pressures between AI developers.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ecompetitive_dynamics_STRONG: 0.750\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ecompetitive_dynamics_WEAK: 0.250\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.750\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.250\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#f2f2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#f2f2a5\", \"border\": \"#0000FF\"}}, \"description\": \"AI systems deceiving humans about their true objectives.\", \"id\": \"Deception_By_AI\", \"instantiations\": [\"deception_by_ai_TRUE\", \"deception_by_ai_FALSE\"], \"label\": \"Deception_By_AI\\np=0.50\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(deception_by_ai_FALSE)\": \"0.50\", \"p(deception_by_ai_TRUE)\": \"0.50\", \"true_prob\": 0.5}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eDeception_By_AI\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI systems deceiving humans about their true objectives.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003edeception_by_ai_TRUE: 0.500\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003edeception_by_ai_FALSE: 0.500\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.500\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.500\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#e2f2a5\", \"border\": \"#800080\", \"highlight\": {\"background\": \"#e2f2a5\", \"border\": \"#800080\"}}, \"description\": \"Human society implementing corrections after observing problems.\", \"id\": \"Corrective_Feedback\", \"instantiations\": [\"corrective_feedback_EFFECTIVE\", \"corrective_feedback_INEFFECTIVE\"], \"label\": \"Corrective_Feedback\\np=0.60\", \"node_type\": \"child\", \"posteriors\": {\"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.80\", \"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.40\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.15\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.20\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.85\"}, \"priors\": {\"p(corrective_feedback_EFFECTIVE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE)\": \"0.40\", \"true_prob\": 0.6}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eCorrective_Feedback\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eHuman society implementing corrections after observing problems.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ecorrective_feedback_EFFECTIVE: 0.600\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ecorrective_feedback_INEFFECTIVE: 0.400\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.600\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.400\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#d3f2a5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#d3f2a5\", \"border\": \"#0000FF\"}}, \"description\": \"Observable failures in weaker systems before catastrophic risks.\", \"id\": \"Warning_Shots\", \"instantiations\": [\"warning_shots_OBSERVED\", \"warning_shots_UNOBSERVED\"], \"label\": \"Warning_Shots\\np=0.70\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(warning_shots_OBSERVED)\": \"0.70\", \"p(warning_shots_UNOBSERVED)\": \"0.30\", \"true_prob\": 0.7}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eWarning_Shots\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eObservable failures in weaker systems before catastrophic risks.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ewarning_shots_OBSERVED: 0.700\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ewarning_shots_UNOBSERVED: 0.300\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.700\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.300\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#f2eaa5\", \"border\": \"#0000FF\", \"highlight\": {\"background\": \"#f2eaa5\", \"border\": \"#0000FF\"}}, \"description\": \"AI capabilities escalating very rapidly, allowing little time for correction.\", \"id\": \"Rapid_Capability_Escalation\", \"instantiations\": [\"rapid_capability_escalation_TRUE\", \"rapid_capability_escalation_FALSE\"], \"label\": \"Rapid_Capability_Escalation\\np=0.45\", \"node_type\": \"parent\", \"posteriors\": {}, \"priors\": {\"p(rapid_capability_escalation_FALSE)\": \"0.55\", \"p(rapid_capability_escalation_TRUE)\": \"0.45\", \"true_prob\": 0.45}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eRapid_Capability_Escalation\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eAI capabilities escalating very rapidly, allowing little time for correction.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003erapid_capability_escalation_TRUE: 0.450\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003erapid_capability_escalation_FALSE: 0.550\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:45.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.450\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:55.00000000000001%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.550\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#f2ada5\", \"border\": \"#000000\", \"highlight\": {\"background\": \"#f2ada5\", \"border\": \"#000000\"}}, \"description\": \"The destruction of humanity\\u0027s long-term potential due to AI systems we\\u0027ve lost control over.\", \"id\": \"Existential_Catastrophe\", \"instantiations\": [\"existential_catastrophe_TRUE\", \"existential_catastrophe_FALSE\"], \"label\": \"Existential_Catastrophe\\np=0.05\", \"node_type\": \"isolated\", \"posteriors\": {\"p(existential_catastrophe_FALSE|human_disempowerment_FALSE)\": \"1.0\", \"p(existential_catastrophe_FALSE|human_disempowerment_TRUE)\": \"0.05\", \"p(existential_catastrophe_TRUE|human_disempowerment_FALSE)\": \"0.0\", \"p(existential_catastrophe_TRUE|human_disempowerment_TRUE)\": \"0.95\"}, \"priors\": {\"p(existential_catastrophe_FALSE)\": \"0.95\", \"p(existential_catastrophe_TRUE)\": \"0.05\", \"true_prob\": 0.05}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eExistential_Catastrophe\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eThe destruction of humanity\\u0027s long-term potential due to AI systems we\\u0027ve lost control over.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eexistential_catastrophe_TRUE: 0.050\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eexistential_catastrophe_FALSE: 0.950\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.050\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.950\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#d3f2a5\", \"border\": \"#000000\", \"highlight\": {\"background\": \"#d3f2a5\", \"border\": \"#000000\"}}, \"description\": \"Difficulty in understanding the internal workings of advanced AI systems.\", \"id\": \"Barriers_To_Understanding\", \"instantiations\": [\"barriers_to_understanding_HIGH\", \"barriers_to_understanding_LOW\"], \"label\": \"Barriers_To_Understanding\\np=0.70\", \"node_type\": \"isolated\", \"posteriors\": {\"p(barriers_to_understanding_HIGH|misaligned_power_seeking_FALSE)\": \"0.60\", \"p(barriers_to_understanding_HIGH|misaligned_power_seeking_TRUE)\": \"0.85\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_FALSE)\": \"0.40\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_TRUE)\": \"0.15\"}, \"priors\": {\"p(barriers_to_understanding_HIGH)\": \"0.70\", \"p(barriers_to_understanding_LOW)\": \"0.30\", \"true_prob\": 0.7}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eBarriers_To_Understanding\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eDifficulty in understanding the internal workings of advanced AI systems.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ebarriers_to_understanding_HIGH: 0.700\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003ebarriers_to_understanding_LOW: 0.300\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.700\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.300\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#e2f2a5\", \"border\": \"#000000\", \"highlight\": {\"background\": \"#e2f2a5\", \"border\": \"#000000\"}}, \"description\": \"Potentially adversarial relationships between humans and power-seeking AI.\", \"id\": \"Adversarial_Dynamics\", \"instantiations\": [\"adversarial_dynamics_TRUE\", \"adversarial_dynamics_FALSE\"], \"label\": \"Adversarial_Dynamics\\np=0.60\", \"node_type\": \"isolated\", \"posteriors\": {\"p(adversarial_dynamics_FALSE|misaligned_power_seeking_FALSE)\": \"0.90\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(adversarial_dynamics_TRUE|misaligned_power_seeking_FALSE)\": \"0.10\", \"p(adversarial_dynamics_TRUE|misaligned_power_seeking_TRUE)\": \"0.95\"}, \"priors\": {\"p(adversarial_dynamics_FALSE)\": \"0.40\", \"p(adversarial_dynamics_TRUE)\": \"0.60\", \"true_prob\": 0.6}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eAdversarial_Dynamics\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003ePotentially adversarial relationships between humans and power-seeking AI.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eadversarial_dynamics_TRUE: 0.600\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003eadversarial_dynamics_FALSE: 0.400\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.600\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.400\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}, {\"color\": {\"background\": \"#bcf2a5\", \"border\": \"#000000\", \"highlight\": {\"background\": \"#bcf2a5\", \"border\": \"#000000\"}}, \"description\": \"The escalating impact of mistakes with power-seeking AI systems.\", \"id\": \"Stakes_Of_Error\", \"instantiations\": [\"stakes_of_error_HIGH\", \"stakes_of_error_LOW\"], \"label\": \"Stakes_Of_Error\\np=0.85\", \"node_type\": \"isolated\", \"posteriors\": {\"p(stakes_of_error_HIGH|misaligned_power_seeking_FALSE)\": \"0.50\", \"p(stakes_of_error_HIGH|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(stakes_of_error_LOW|misaligned_power_seeking_FALSE)\": \"0.50\", \"p(stakes_of_error_LOW|misaligned_power_seeking_TRUE)\": \"0.05\"}, \"priors\": {\"p(stakes_of_error_HIGH)\": \"0.85\", \"p(stakes_of_error_LOW)\": \"0.15\", \"true_prob\": 0.85}, \"shape\": \"box\", \"size\": 10, \"title\": \"\\n    \\u003cdiv style=\\\"max-width:350px; padding:10px; background-color:#f8f9fa; border-radius:5px; font-family:Arial, sans-serif;\\\"\\u003e\\n        \\u003ch3 style=\\\"margin-top:0; color:#202124;\\\"\\u003eStakes_Of_Error\\u003c/h3\\u003e\\n        \\u003cp style=\\\"font-style:italic;\\\"\\u003eThe escalating impact of mistakes with power-seeking AI systems.\\u003c/p\\u003e\\n    \\n        \\u003cdiv style=\\\"margin-top:10px; background-color:#fff; padding:8px; border-radius:4px; border:1px solid #ddd;\\\"\\u003e\\n            \\u003ch4 style=\\\"margin-top:0; font-size:14px;\\\"\\u003ePrior Probabilities:\\u003c/h4\\u003e\\n            \\u003cdiv style=\\\"display:flex; justify-content:space-between; margin-bottom:4px;\\\"\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003estakes_of_error_HIGH: 0.850\\u003c/div\\u003e\\n                \\u003cdiv style=\\\"font-size:12px;\\\"\\u003estakes_of_error_LOW: 0.150\\u003c/div\\u003e\\n            \\u003c/div\\u003e\\n            \\n    \\u003cdiv style=\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\"\\u003e\\n        \\u003cdiv style=\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.850\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n        \\u003cdiv style=\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\"\\u003e\\n            \\u003cspan style=\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\"\\u003e0.150\\u003c/span\\u003e\\n        \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \\n        \\u003c/div\\u003e\\n        \\n    \\u003cdiv style=\\\"margin-top:8px; font-size:12px; color:#666; text-align:center;\\\"\\u003e\\n        Click node to see full probability details\\n    \\u003c/div\\u003e\\n    \\u003c/div\\u003e\\n    \"}]);\n",
              "                  edges = new vis.DataSet([{\"arrows\": \"to\", \"from\": \"Scale_Of_Power_Seeking\", \"to\": \"Human_Disempowerment\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Misaligned_Power_Seeking\", \"to\": \"Scale_Of_Power_Seeking\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"APS_Systems\", \"to\": \"Misaligned_Power_Seeking\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Advanced_AI_Capability\", \"to\": \"APS_Systems\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Agentic_Planning\", \"to\": \"APS_Systems\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Strategic_Awareness\", \"to\": \"APS_Systems\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Difficulty_Of_Alignment\", \"to\": \"Misaligned_Power_Seeking\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Instrumental_Convergence\", \"to\": \"Difficulty_Of_Alignment\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Problems_With_Proxies\", \"to\": \"Difficulty_Of_Alignment\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Problems_With_Search\", \"to\": \"Difficulty_Of_Alignment\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Deployment_Decisions\", \"to\": \"Misaligned_Power_Seeking\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Incentives_To_Build_APS\", \"to\": \"Deployment_Decisions\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Usefulness_Of_APS\", \"to\": \"Incentives_To_Build_APS\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Competitive_Dynamics\", \"to\": \"Incentives_To_Build_APS\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Deception_By_AI\", \"to\": \"Deployment_Decisions\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Corrective_Feedback\", \"to\": \"Scale_Of_Power_Seeking\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Warning_Shots\", \"to\": \"Corrective_Feedback\", \"width\": 1}, {\"arrows\": \"to\", \"from\": \"Rapid_Capability_Escalation\", \"to\": \"Corrective_Feedback\", \"width\": 1}]);\n",
              "\n",
              "                  nodeColors = {};\n",
              "                  allNodes = nodes.get({ returnType: \"Object\" });\n",
              "                  for (nodeId in allNodes) {\n",
              "                    nodeColors[nodeId] = allNodes[nodeId].color;\n",
              "                  }\n",
              "                  allEdges = edges.get({ returnType: \"Object\" });\n",
              "                  // adding nodes and edges to the graph\n",
              "                  data = {nodes: nodes, edges: edges};\n",
              "\n",
              "                  var options = {\n",
              "    \"configure\": {\n",
              "        \"enabled\": true,\n",
              "        \"filter\": [\n",
              "            \"physics\"\n",
              "        ]\n",
              "    },\n",
              "    \"edges\": {\n",
              "        \"color\": {\n",
              "            \"inherit\": true\n",
              "        },\n",
              "        \"smooth\": {\n",
              "            \"enabled\": true,\n",
              "            \"type\": \"dynamic\"\n",
              "        }\n",
              "    },\n",
              "    \"interaction\": {\n",
              "        \"dragNodes\": true,\n",
              "        \"hideEdgesOnDrag\": false,\n",
              "        \"hideNodesOnDrag\": false\n",
              "    },\n",
              "    \"physics\": {\n",
              "        \"enabled\": true,\n",
              "        \"forceAtlas2Based\": {\n",
              "            \"avoidOverlap\": 0,\n",
              "            \"centralGravity\": 0.01,\n",
              "            \"damping\": 0.4,\n",
              "            \"gravitationalConstant\": -50,\n",
              "            \"springConstant\": 0.02,\n",
              "            \"springLength\": 100\n",
              "        },\n",
              "        \"solver\": \"forceAtlas2Based\",\n",
              "        \"stabilization\": {\n",
              "            \"enabled\": true,\n",
              "            \"fit\": true,\n",
              "            \"iterations\": 1000,\n",
              "            \"onlyDynamicEdges\": false,\n",
              "            \"updateInterval\": 50\n",
              "        }\n",
              "    }\n",
              "};\n",
              "\n",
              "                  \n",
              "\n",
              "\n",
              "                  \n",
              "                  // if this network requires displaying the configure window,\n",
              "                  // put it in its div\n",
              "                  options.configure[\"container\"] = document.getElementById(\"config\");\n",
              "                  \n",
              "\n",
              "                  network = new vis.Network(container, data, options);\n",
              "\n",
              "                  \n",
              "\n",
              "                  \n",
              "\n",
              "                  \n",
              "\n",
              "\n",
              "                  \n",
              "\n",
              "                  return network;\n",
              "\n",
              "              }\n",
              "              drawGraph();\n",
              "        </script>\n",
              "    <script>\n",
              "    // Store node data for click handling\n",
              "    var nodesData = {\"Existential_Catastrophe\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Existential_Catastrophe</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">The destruction of humanity's long-term potential due to AI systems we've lost control over.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>existential_catastrophe_TRUE:</strong> 0.050</div>\\\\n                <div><strong>existential_catastrophe_FALSE:</strong> 0.950</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.050</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.950</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(existential_catastrophe_FALSE|human_disempowerment_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(existential_catastrophe_FALSE|human_disempowerment_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.050</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(existential_catastrophe_TRUE|human_disempowerment_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(existential_catastrophe_TRUE|human_disempowerment_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.950</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:5.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"The destruction of humanity's long-term potential due to AI systems we've lost control over.\", \"priors\": {\"p(existential_catastrophe_TRUE)\": \"0.05\", \"p(existential_catastrophe_FALSE)\": \"0.95\", \"true_prob\": 0.05}, \"posteriors\": {\"p(existential_catastrophe_TRUE|human_disempowerment_TRUE)\": \"0.95\", \"p(existential_catastrophe_TRUE|human_disempowerment_FALSE)\": \"0.0\", \"p(existential_catastrophe_FALSE|human_disempowerment_TRUE)\": \"0.05\", \"p(existential_catastrophe_FALSE|human_disempowerment_FALSE)\": \"1.0\"}}, \"Human_Disempowerment\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Human_Disempowerment</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Permanent and collective disempowerment of humanity relative to AI systems.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>human_disempowerment_TRUE:</strong> 0.208</div>\\\\n                <div><strong>human_disempowerment_FALSE:</strong> 0.792</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:20.8%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.208</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:79.2%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.792</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(human_disempowerment_FALSE|scale_of_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(human_disempowerment_FALSE|scale_of_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(human_disempowerment_TRUE|scale_of_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(human_disempowerment_TRUE|scale_of_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Permanent and collective disempowerment of humanity relative to AI systems.\", \"priors\": {\"p(human_disempowerment_TRUE)\": \"0.208\", \"p(human_disempowerment_FALSE)\": \"0.792\", \"true_prob\": 0.208}, \"posteriors\": {\"p(human_disempowerment_TRUE|scale_of_power_seeking_TRUE)\": \"1.0\", \"p(human_disempowerment_TRUE|scale_of_power_seeking_FALSE)\": \"0.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_TRUE)\": \"0.0\", \"p(human_disempowerment_FALSE|scale_of_power_seeking_FALSE)\": \"1.0\"}}, \"Scale_Of_Power_Seeking\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Scale_Of_Power_Seeking</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>scale_of_power_seeking_TRUE:</strong> 0.208</div>\\\\n                <div><strong>scale_of_power_seeking_FALSE:</strong> 0.792</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:20.8%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.208</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:79.2%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.792</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.750</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.250</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Power-seeking by AI systems scaling to the point of permanently disempowering all of humanity.\", \"priors\": {\"p(scale_of_power_seeking_TRUE)\": \"0.208\", \"p(scale_of_power_seeking_FALSE)\": \"0.792\", \"true_prob\": 0.208}, \"posteriors\": {\"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.25\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.60\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_TRUE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"0.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_EFFECTIVE)\": \"0.75\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_TRUE, corrective_feedback_INEFFECTIVE)\": \"0.40\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_EFFECTIVE)\": \"1.0\", \"p(scale_of_power_seeking_FALSE|misaligned_power_seeking_FALSE, corrective_feedback_INEFFECTIVE)\": \"1.0\"}}, \"Misaligned_Power_Seeking\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Misaligned_Power_Seeking</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>misaligned_power_seeking_TRUE:</strong> 0.338</div>\\\\n                <div><strong>misaligned_power_seeking_FALSE:</strong> 0.662</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:33.800000000000004%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.338</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:66.19999999999999%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.662</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.750</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.950</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:5.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.100</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:10.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.900</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:9.999999999999998%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.250</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.050</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.900</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:9.999999999999998%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.100</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:10.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Deployed AI systems seeking power in unintended and high-impact ways due to problems with their objectives.\", \"priors\": {\"p(misaligned_power_seeking_TRUE)\": \"0.338\", \"p(misaligned_power_seeking_FALSE)\": \"0.662\", \"true_prob\": 0.338}, \"posteriors\": {\"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.90\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.10\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.25\", \"p(misaligned_power_seeking_TRUE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.05\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.0\", \"p(misaligned_power_seeking_TRUE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"0.10\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"0.90\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"0.75\", \"p(misaligned_power_seeking_FALSE|aps_systems_TRUE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"0.95\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_TRUE, deployment_decisions_WITHHOLD)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_DEPLOY)\": \"1.0\", \"p(misaligned_power_seeking_FALSE|aps_systems_FALSE, difficulty_of_alignment_FALSE, deployment_decisions_WITHHOLD)\": \"1.0\"}}, \"APS_Systems\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">APS_Systems</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI systems with advanced capabilities, agentic planning, and strategic awareness.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>aps_systems_TRUE:</strong> 0.650</div>\\\\n                <div><strong>aps_systems_FALSE:</strong> 0.350</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:65.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.650</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:35.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.350</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">1.000</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:100.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:0.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:0px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"AI systems with advanced capabilities, agentic planning, and strategic awareness.\", \"priors\": {\"p(aps_systems_TRUE)\": \"0.65\", \"p(aps_systems_FALSE)\": \"0.35\", \"true_prob\": 0.65}, \"posteriors\": {\"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_TRUE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"0.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"0.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_TRUE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_TRUE, strategic_awareness_FALSE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_TRUE)\": \"1.0\", \"p(aps_systems_FALSE|advanced_ai_capability_FALSE, agentic_planning_FALSE, strategic_awareness_FALSE)\": \"1.0\"}}, \"Advanced_AI_Capability\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Advanced_AI_Capability</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI systems that outperform humans on tasks that grant significant power in the world.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>advanced_ai_capability_TRUE:</strong> 0.800</div>\\\\n                <div><strong>advanced_ai_capability_FALSE:</strong> 0.200</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.800</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.200</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"AI systems that outperform humans on tasks that grant significant power in the world.\", \"priors\": {\"p(advanced_ai_capability_TRUE)\": \"0.80\", \"p(advanced_ai_capability_FALSE)\": \"0.20\", \"true_prob\": 0.8}, \"posteriors\": {}}, \"Agentic_Planning\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Agentic_Planning</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI systems making and executing plans based on world models to achieve objectives.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>agentic_planning_TRUE:</strong> 0.850</div>\\\\n                <div><strong>agentic_planning_FALSE:</strong> 0.150</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.850</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.150</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"AI systems making and executing plans based on world models to achieve objectives.\", \"priors\": {\"p(agentic_planning_TRUE)\": \"0.85\", \"p(agentic_planning_FALSE)\": \"0.15\", \"true_prob\": 0.85}, \"posteriors\": {}}, \"Strategic_Awareness\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Strategic_Awareness</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI systems with models accurately representing power dynamics with humans.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>strategic_awareness_TRUE:</strong> 0.750</div>\\\\n                <div><strong>strategic_awareness_FALSE:</strong> 0.250</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.750</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.250</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"AI systems with models accurately representing power dynamics with humans.\", \"priors\": {\"p(strategic_awareness_TRUE)\": \"0.75\", \"p(strategic_awareness_FALSE)\": \"0.25\", \"true_prob\": 0.75}, \"posteriors\": {}}, \"Difficulty_Of_Alignment\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Difficulty_Of_Alignment</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">It is harder to build aligned systems than misaligned systems that are attractive to deploy.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>difficulty_of_alignment_TRUE:</strong> 0.400</div>\\\\n                <div><strong>difficulty_of_alignment_FALSE:</strong> 0.600</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.400</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.600</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.900</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:9.999999999999998%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.700</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.450</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:45.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:55.00000000000001%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.300</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:30.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.150</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:15.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.100</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:10.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.300</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:30.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.550</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:55.00000000000001%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:44.99999999999999%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.700</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.850</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"It is harder to build aligned systems than misaligned systems that are attractive to deploy.\", \"priors\": {\"p(difficulty_of_alignment_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE)\": \"0.60\", \"true_prob\": 0.4}, \"posteriors\": {\"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.85\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.70\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.60\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.55\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.40\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.30\", \"p(difficulty_of_alignment_TRUE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.10\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.15\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.30\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.40\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_TRUE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_TRUE)\": \"0.45\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_TRUE, problems_with_search_FALSE)\": \"0.60\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_TRUE)\": \"0.70\", \"p(difficulty_of_alignment_FALSE|instrumental_convergence_FALSE, problems_with_proxies_FALSE, problems_with_search_FALSE)\": \"0.90\"}}, \"Instrumental_Convergence\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Instrumental_Convergence</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI systems with misaligned objectives tend to seek power as an instrumental goal.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>instrumental_convergence_TRUE:</strong> 0.750</div>\\\\n                <div><strong>instrumental_convergence_FALSE:</strong> 0.250</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.750</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.250</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"AI systems with misaligned objectives tend to seek power as an instrumental goal.\", \"priors\": {\"p(instrumental_convergence_TRUE)\": \"0.75\", \"p(instrumental_convergence_FALSE)\": \"0.25\", \"true_prob\": 0.75}, \"posteriors\": {}}, \"Problems_With_Proxies\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Problems_With_Proxies</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Optimizing for proxy objectives breaks correlations with intended goals.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>problems_with_proxies_TRUE:</strong> 0.800</div>\\\\n                <div><strong>problems_with_proxies_FALSE:</strong> 0.200</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.800</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.200</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"Optimizing for proxy objectives breaks correlations with intended goals.\", \"priors\": {\"p(problems_with_proxies_TRUE)\": \"0.80\", \"p(problems_with_proxies_FALSE)\": \"0.20\", \"true_prob\": 0.8}, \"posteriors\": {}}, \"Problems_With_Search\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Problems_With_Search</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Search processes can yield systems pursuing different objectives than intended.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>problems_with_search_TRUE:</strong> 0.700</div>\\\\n                <div><strong>problems_with_search_FALSE:</strong> 0.300</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.700</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.300</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"Search processes can yield systems pursuing different objectives than intended.\", \"priors\": {\"p(problems_with_search_TRUE)\": \"0.70\", \"p(problems_with_search_FALSE)\": \"0.30\", \"true_prob\": 0.7}, \"posteriors\": {}}, \"Deployment_Decisions\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Deployment_Decisions</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Decisions to deploy potentially misaligned AI systems.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>deployment_decisions_DEPLOY:</strong> 0.700</div>\\\\n                <div><strong>deployment_decisions_WITHHOLD:</strong> 0.300</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.700</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.300</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.750</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.900</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:9.999999999999998%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.300</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:30.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.250</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.100</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:10.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.700</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Decisions to deploy potentially misaligned AI systems.\", \"priors\": {\"p(deployment_decisions_DEPLOY)\": \"0.70\", \"p(deployment_decisions_WITHHOLD)\": \"0.30\", \"true_prob\": 0.7}, \"posteriors\": {\"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.90\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.75\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.60\", \"p(deployment_decisions_DEPLOY|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.30\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_TRUE)\": \"0.10\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_STRONG, deception_by_ai_FALSE)\": \"0.25\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_TRUE)\": \"0.40\", \"p(deployment_decisions_WITHHOLD|incentives_to_build_aps_WEAK, deception_by_ai_FALSE)\": \"0.70\"}}, \"Incentives_To_Build_APS\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Incentives_To_Build_APS</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Strong incentives to build and deploy APS systems.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>incentives_to_build_aps_STRONG:</strong> 0.800</div>\\\\n                <div><strong>incentives_to_build_aps_WEAK:</strong> 0.200</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.800</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.200</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.950</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:5.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.800</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_STRONG)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.700</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_WEAK)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.300</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:30.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.050</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.200</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:20.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_STRONG)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.300</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:30.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_WEAK)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.700</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Strong incentives to build and deploy APS systems.\", \"priors\": {\"p(incentives_to_build_aps_STRONG)\": \"0.80\", \"p(incentives_to_build_aps_WEAK)\": \"0.20\", \"true_prob\": 0.8}, \"posteriors\": {\"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.95\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.80\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.70\", \"p(incentives_to_build_aps_STRONG|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_STRONG)\": \"0.05\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_HIGH, competitive_dynamics_WEAK)\": \"0.20\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_STRONG)\": \"0.30\", \"p(incentives_to_build_aps_WEAK|usefulness_of_aps_LOW, competitive_dynamics_WEAK)\": \"0.70\"}}, \"Usefulness_Of_APS\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Usefulness_Of_APS</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">APS systems are very useful for many valuable tasks.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>usefulness_of_aps_HIGH:</strong> 0.850</div>\\\\n                <div><strong>usefulness_of_aps_LOW:</strong> 0.150</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.850</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.150</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"APS systems are very useful for many valuable tasks.\", \"priors\": {\"p(usefulness_of_aps_HIGH)\": \"0.85\", \"p(usefulness_of_aps_LOW)\": \"0.15\", \"true_prob\": 0.85}, \"posteriors\": {}}, \"Competitive_Dynamics\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Competitive_Dynamics</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Competitive pressures between AI developers.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>competitive_dynamics_STRONG:</strong> 0.750</div>\\\\n                <div><strong>competitive_dynamics_WEAK:</strong> 0.250</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:75.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.750</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:25.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.250</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"Competitive pressures between AI developers.\", \"priors\": {\"p(competitive_dynamics_STRONG)\": \"0.75\", \"p(competitive_dynamics_WEAK)\": \"0.25\", \"true_prob\": 0.75}, \"posteriors\": {}}, \"Deception_By_AI\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Deception_By_AI</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI systems deceiving humans about their true objectives.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>deception_by_ai_TRUE:</strong> 0.500</div>\\\\n                <div><strong>deception_by_ai_FALSE:</strong> 0.500</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.500</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.500</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"AI systems deceiving humans about their true objectives.\", \"priors\": {\"p(deception_by_ai_TRUE)\": \"0.50\", \"p(deception_by_ai_FALSE)\": \"0.50\", \"true_prob\": 0.5}, \"posteriors\": {}}, \"Corrective_Feedback\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Corrective_Feedback</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Human society implementing corrections after observing problems.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>corrective_feedback_EFFECTIVE:</strong> 0.600</div>\\\\n                <div><strong>corrective_feedback_INEFFECTIVE:</strong> 0.400</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.600</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.400</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.800</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:19.999999999999996%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.500</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.150</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:15.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.200</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:20.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:80.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.500</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.850</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Human society implementing corrections after observing problems.\", \"priors\": {\"p(corrective_feedback_EFFECTIVE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE)\": \"0.40\", \"true_prob\": 0.6}, \"posteriors\": {\"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.40\", \"p(corrective_feedback_EFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.80\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.15\", \"p(corrective_feedback_EFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_TRUE)\": \"0.60\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_OBSERVED, rapid_capability_escalation_FALSE)\": \"0.20\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_TRUE)\": \"0.85\", \"p(corrective_feedback_INEFFECTIVE|warning_shots_UNOBSERVED, rapid_capability_escalation_FALSE)\": \"0.50\"}}, \"Warning_Shots\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Warning_Shots</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Observable failures in weaker systems before catastrophic risks.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>warning_shots_OBSERVED:</strong> 0.700</div>\\\\n                <div><strong>warning_shots_UNOBSERVED:</strong> 0.300</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.700</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.300</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"Observable failures in weaker systems before catastrophic risks.\", \"priors\": {\"p(warning_shots_OBSERVED)\": \"0.70\", \"p(warning_shots_UNOBSERVED)\": \"0.30\", \"true_prob\": 0.7}, \"posteriors\": {}}, \"Rapid_Capability_Escalation\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Rapid_Capability_Escalation</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">AI capabilities escalating very rapidly, allowing little time for correction.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>rapid_capability_escalation_TRUE:</strong> 0.450</div>\\\\n                <div><strong>rapid_capability_escalation_FALSE:</strong> 0.550</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:45.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.450</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:55.00000000000001%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.550</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    </div>\\\"\", \"description\": \"AI capabilities escalating very rapidly, allowing little time for correction.\", \"priors\": {\"p(rapid_capability_escalation_TRUE)\": \"0.45\", \"p(rapid_capability_escalation_FALSE)\": \"0.55\", \"true_prob\": 0.45}, \"posteriors\": {}}, \"Barriers_To_Understanding\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Barriers_To_Understanding</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Difficulty in understanding the internal workings of advanced AI systems.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>barriers_to_understanding_HIGH:</strong> 0.700</div>\\\\n                <div><strong>barriers_to_understanding_LOW:</strong> 0.300</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:70.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.700</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:30.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.300</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(barriers_to_understanding_HIGH|misaligned_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.600</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(barriers_to_understanding_HIGH|misaligned_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.850</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(barriers_to_understanding_LOW|misaligned_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.400</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(barriers_to_understanding_LOW|misaligned_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.150</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:15.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Difficulty in understanding the internal workings of advanced AI systems.\", \"priors\": {\"p(barriers_to_understanding_HIGH)\": \"0.70\", \"p(barriers_to_understanding_LOW)\": \"0.30\", \"true_prob\": 0.7}, \"posteriors\": {\"p(barriers_to_understanding_HIGH|misaligned_power_seeking_TRUE)\": \"0.85\", \"p(barriers_to_understanding_HIGH|misaligned_power_seeking_FALSE)\": \"0.60\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_TRUE)\": \"0.15\", \"p(barriers_to_understanding_LOW|misaligned_power_seeking_FALSE)\": \"0.40\"}}, \"Adversarial_Dynamics\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Adversarial_Dynamics</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">Potentially adversarial relationships between humans and power-seeking AI.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>adversarial_dynamics_TRUE:</strong> 0.600</div>\\\\n                <div><strong>adversarial_dynamics_FALSE:</strong> 0.400</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:60.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.600</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:40.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.400</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(adversarial_dynamics_FALSE|misaligned_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.900</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:9.999999999999998%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(adversarial_dynamics_FALSE|misaligned_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.050</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(adversarial_dynamics_TRUE|misaligned_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.100</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:10.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:90.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(adversarial_dynamics_TRUE|misaligned_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.950</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:5.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"Potentially adversarial relationships between humans and power-seeking AI.\", \"priors\": {\"p(adversarial_dynamics_TRUE)\": \"0.60\", \"p(adversarial_dynamics_FALSE)\": \"0.40\", \"true_prob\": 0.6}, \"posteriors\": {\"p(adversarial_dynamics_TRUE|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(adversarial_dynamics_TRUE|misaligned_power_seeking_FALSE)\": \"0.10\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(adversarial_dynamics_FALSE|misaligned_power_seeking_FALSE)\": \"0.90\"}}, \"Stakes_Of_Error\": {\"expanded_content\": \"\\\"\\\\n    <div style=\\\\\\\"max-width:500px; padding:15px; font-family:Arial, sans-serif;\\\\\\\">\\\\n        <h2 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Stakes_Of_Error</h2>\\\\n        <p style=\\\\\\\"font-style:italic; margin-bottom:15px;\\\\\\\">The escalating impact of mistakes with power-seeking AI systems.</p>\\\\n\\\\n        <div style=\\\\\\\"margin-bottom:20px; padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Prior Probabilities</h3>\\\\n            <div style=\\\\\\\"display:flex; justify-content:space-between; margin-bottom:5px;\\\\\\\">\\\\n                <div><strong>stakes_of_error_HIGH:</strong> 0.850</div>\\\\n                <div><strong>stakes_of_error_LOW:</strong> 0.150</div>\\\\n            </div>\\\\n            \\\\n    <div style=\\\\\\\"width:100%; height:25px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:85.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.850</span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:15.000000000000002%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\">0.150</span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n        </div>\\\\n    \\\\n        <div style=\\\\\\\"padding:12px; border:1px solid #ddd; background-color:#f9f9f9; border-radius:5px;\\\\\\\">\\\\n            <h3 style=\\\\\\\"margin-top:0; color:#333;\\\\\\\">Conditional Probabilities</h3>\\\\n            <table style=\\\\\\\"width:100%; border-collapse:collapse; font-size:13px;\\\\\\\">\\\\n                <tr style=\\\\\\\"background-color:#eee;\\\\\\\">\\\\n                    <th style=\\\\\\\"padding:8px; text-align:left; border:1px solid #ddd;\\\\\\\">Condition</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd; width:80px;\\\\\\\">Value</th>\\\\n                    <th style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">Visualization</th>\\\\n                </tr>\\\\n        \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(stakes_of_error_HIGH|misaligned_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.500</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(stakes_of_error_HIGH|misaligned_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.950</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:5.000000000000004%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(stakes_of_error_LOW|misaligned_power_seeking_FALSE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.500</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:50.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n                <tr>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">p(stakes_of_error_LOW|misaligned_power_seeking_TRUE)</td>\\\\n                    <td style=\\\\\\\"padding:8px; text-align:center; border:1px solid #ddd;\\\\\\\">0.050</td>\\\\n                    <td style=\\\\\\\"padding:8px; border:1px solid #ddd;\\\\\\\">\\\\n                        \\\\n    <div style=\\\\\\\"width:100%; height:20px; display:flex; border:1px solid #ccc; overflow:hidden; border-radius:3px; margin-top:3px; margin-bottom:3px;\\\\\\\">\\\\n        <div style=\\\\\\\"flex-basis:5.0%; background:linear-gradient(to bottom, rgba(0,180,0,0.9), rgba(0,140,0,0.7)); border-right:2px solid #008800; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n        <div style=\\\\\\\"flex-basis:95.0%; background:linear-gradient(to bottom, rgba(220,0,0,0.9), rgba(180,0,0,0.7)); border-left:2px solid #880000; display:flex; align-items:center; justify-content:center; overflow:hidden; min-width:2px;\\\\\\\">\\\\n            <span style=\\\\\\\"font-size:10px; color:white; text-shadow:0px 0px 2px #000;\\\\\\\"></span>\\\\n        </div>\\\\n    </div>\\\\n    \\\\n                    </td>\\\\n                </tr>\\\\n                \\\\n            </table>\\\\n        </div>\\\\n        </div>\\\"\", \"description\": \"The escalating impact of mistakes with power-seeking AI systems.\", \"priors\": {\"p(stakes_of_error_HIGH)\": \"0.85\", \"p(stakes_of_error_LOW)\": \"0.15\", \"true_prob\": 0.85}, \"posteriors\": {\"p(stakes_of_error_HIGH|misaligned_power_seeking_TRUE)\": \"0.95\", \"p(stakes_of_error_HIGH|misaligned_power_seeking_FALSE)\": \"0.50\", \"p(stakes_of_error_LOW|misaligned_power_seeking_TRUE)\": \"0.05\", \"p(stakes_of_error_LOW|misaligned_power_seeking_FALSE)\": \"0.50\"}}};\n",
              "\n",
              "    // Add event listener for node clicks\n",
              "    network.on(\"click\", function(params) {\n",
              "        if (params.nodes.length > 0) {\n",
              "            var nodeId = params.nodes[0];\n",
              "            var nodeInfo = nodesData[nodeId];\n",
              "\n",
              "            if (nodeInfo) {\n",
              "                // Create a modal popup for expanded content\n",
              "                var modal = document.createElement('div');\n",
              "                modal.style.position = 'fixed';\n",
              "                modal.style.left = '50%';\n",
              "                modal.style.top = '50%';\n",
              "                modal.style.transform = 'translate(-50%, -50%)';\n",
              "                modal.style.backgroundColor = 'white';\n",
              "                modal.style.padding = '20px';\n",
              "                modal.style.borderRadius = '5px';\n",
              "                modal.style.boxShadow = '0 0 10px rgba(0,0,0,0.5)';\n",
              "                modal.style.zIndex = '1000';\n",
              "                modal.style.maxWidth = '80%';\n",
              "                modal.style.maxHeight = '80%';\n",
              "                modal.style.overflow = 'auto';\n",
              "\n",
              "                // Parse the JSON string back to HTML content\n",
              "                try {\n",
              "                    var expandedContent = JSON.parse(nodeInfo.expanded_content);\n",
              "                    modal.innerHTML = expandedContent;\n",
              "                } catch (e) {\n",
              "                    modal.innerHTML = 'Error displaying content: ' + e.message;\n",
              "                }\n",
              "\n",
              "                // Add close button\n",
              "                var closeBtn = document.createElement('button');\n",
              "                closeBtn.innerHTML = 'Close';\n",
              "                closeBtn.style.marginTop = '10px';\n",
              "                closeBtn.style.padding = '5px 10px';\n",
              "                closeBtn.style.cursor = 'pointer';\n",
              "                closeBtn.onclick = function() {\n",
              "                    document.body.removeChild(modal);\n",
              "                };\n",
              "                modal.appendChild(closeBtn);\n",
              "\n",
              "                // Add modal to body\n",
              "                document.body.appendChild(modal);\n",
              "            }\n",
              "        }\n",
              "    });\n",
              "    </script></body>\n",
              "</html>"
            ]
          },
          "metadata": {},
          "execution_count": 44
        }
      ],
      "source": [
        "create_bayesian_network_with_probabilities(result_df)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": true,
        "id": "cf6OamxLE-bf",
        "outputId": "6fe7c6af-f3d1-4a15-fed4-22420c7e1ce4",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                          Title  \\\n",
            "0       Existential_Catastrophe   \n",
            "1          Human_Disempowerment   \n",
            "2        Scale_Of_Power_Seeking   \n",
            "3      Misaligned_Power_Seeking   \n",
            "4                   APS_Systems   \n",
            "5        Advanced_AI_Capability   \n",
            "6              Agentic_Planning   \n",
            "7           Strategic_Awareness   \n",
            "8       Difficulty_Of_Alignment   \n",
            "9      Instrumental_Convergence   \n",
            "10        Problems_With_Proxies   \n",
            "11         Problems_With_Search   \n",
            "12         Deployment_Decisions   \n",
            "13      Incentives_To_Build_APS   \n",
            "14            Usefulness_Of_APS   \n",
            "15         Competitive_Dynamics   \n",
            "16              Deception_By_AI   \n",
            "17          Corrective_Feedback   \n",
            "18                Warning_Shots   \n",
            "19  Rapid_Capability_Escalation   \n",
            "20    Barriers_To_Understanding   \n",
            "21         Adversarial_Dynamics   \n",
            "22              Stakes_Of_Error   \n",
            "\n",
            "                                          Description  line     line_numbers  \\\n",
            "0   The destruction of humanity's long-term potent...     0              [0]   \n",
            "1   Permanent and collective disempowerment of hum...     1              [1]   \n",
            "2   Power-seeking by AI systems scaling to the poi...     2              [2]   \n",
            "3   Deployed AI systems seeking power in unintende...     3  [3, 21, 23, 25]   \n",
            "4   AI systems with advanced capabilities, agentic...     4              [4]   \n",
            "5   AI systems that outperform humans on tasks tha...     5              [5]   \n",
            "6   AI systems making and executing plans based on...     6              [6]   \n",
            "7   AI systems with models accurately representing...     7              [7]   \n",
            "8   It is harder to build aligned systems than mis...     8              [8]   \n",
            "9   AI systems with misaligned objectives tend to ...     9              [9]   \n",
            "10  Optimizing for proxy objectives breaks correla...    10             [10]   \n",
            "11  Search processes can yield systems pursuing di...    11             [11]   \n",
            "12  Decisions to deploy potentially misaligned AI ...    12             [12]   \n",
            "13  Strong incentives to build and deploy APS syst...    13             [13]   \n",
            "14  APS systems are very useful for many valuable ...    14             [14]   \n",
            "15       Competitive pressures between AI developers.    15             [15]   \n",
            "16  AI systems deceiving humans about their true o...    16             [16]   \n",
            "17  Human society implementing corrections after o...    17             [17]   \n",
            "18  Observable failures in weaker systems before c...    18             [18]   \n",
            "19  AI capabilities escalating very rapidly, allow...    19             [19]   \n",
            "20  Difficulty in understanding the internal worki...    20             [20]   \n",
            "21  Potentially adversarial relationships between ...    22             [22]   \n",
            "22  The escalating impact of mistakes with power-s...    24             [24]   \n",
            "\n",
            "    indentation indentation_levels  \\\n",
            "0             0                [0]   \n",
            "1             0                [0]   \n",
            "2             4                [4]   \n",
            "3             8       [8, 0, 0, 0]   \n",
            "4            12               [12]   \n",
            "5            16               [16]   \n",
            "6            16               [16]   \n",
            "7            16               [16]   \n",
            "8            12               [12]   \n",
            "9            16               [16]   \n",
            "10           16               [16]   \n",
            "11           16               [16]   \n",
            "12           12               [12]   \n",
            "13           16               [16]   \n",
            "14           20               [20]   \n",
            "15           20               [20]   \n",
            "16           16               [16]   \n",
            "17            8                [8]   \n",
            "18           12               [12]   \n",
            "19           12               [12]   \n",
            "20            0                [0]   \n",
            "21            0                [0]   \n",
            "22            0                [0]   \n",
            "\n",
            "                                              Parents  \\\n",
            "0                                                  []   \n",
            "1                            [Scale_Of_Power_Seeking]   \n",
            "2     [Misaligned_Power_Seeking, Corrective_Feedback]   \n",
            "3   [APS_Systems, Difficulty_Of_Alignment, Deploym...   \n",
            "4   [Advanced_AI_Capability, Agentic_Planning, Str...   \n",
            "5                                                  []   \n",
            "6                                                  []   \n",
            "7                                                  []   \n",
            "8   [Instrumental_Convergence, Problems_With_Proxi...   \n",
            "9                                                  []   \n",
            "10                                                 []   \n",
            "11                                                 []   \n",
            "12         [Incentives_To_Build_APS, Deception_By_AI]   \n",
            "13          [Usefulness_Of_APS, Competitive_Dynamics]   \n",
            "14                                                 []   \n",
            "15                                                 []   \n",
            "16                                                 []   \n",
            "17       [Warning_Shots, Rapid_Capability_Escalation]   \n",
            "18                                                 []   \n",
            "19                                                 []   \n",
            "20                                                 []   \n",
            "21                                                 []   \n",
            "22                                                 []   \n",
            "\n",
            "                      Children  \\\n",
            "0                           []   \n",
            "1                           []   \n",
            "2       [Human_Disempowerment]   \n",
            "3     [Scale_Of_Power_Seeking]   \n",
            "4   [Misaligned_Power_Seeking]   \n",
            "5                [APS_Systems]   \n",
            "6                [APS_Systems]   \n",
            "7                [APS_Systems]   \n",
            "8   [Misaligned_Power_Seeking]   \n",
            "9    [Difficulty_Of_Alignment]   \n",
            "10   [Difficulty_Of_Alignment]   \n",
            "11   [Difficulty_Of_Alignment]   \n",
            "12  [Misaligned_Power_Seeking]   \n",
            "13      [Deployment_Decisions]   \n",
            "14   [Incentives_To_Build_APS]   \n",
            "15   [Incentives_To_Build_APS]   \n",
            "16      [Deployment_Decisions]   \n",
            "17    [Scale_Of_Power_Seeking]   \n",
            "18       [Corrective_Feedback]   \n",
            "19       [Corrective_Feedback]   \n",
            "20                          []   \n",
            "21                          []   \n",
            "22                          []   \n",
            "\n",
            "                                       instantiations  \\\n",
            "0   [existential_catastrophe_TRUE, existential_cat...   \n",
            "1   [human_disempowerment_TRUE, human_disempowerme...   \n",
            "2   [scale_of_power_seeking_TRUE, scale_of_power_s...   \n",
            "3   [misaligned_power_seeking_TRUE, misaligned_pow...   \n",
            "4               [aps_systems_TRUE, aps_systems_FALSE]   \n",
            "5   [advanced_ai_capability_TRUE, advanced_ai_capa...   \n",
            "6     [agentic_planning_TRUE, agentic_planning_FALSE]   \n",
            "7   [strategic_awareness_TRUE, strategic_awareness...   \n",
            "8   [difficulty_of_alignment_TRUE, difficulty_of_a...   \n",
            "9   [instrumental_convergence_TRUE, instrumental_c...   \n",
            "10  [problems_with_proxies_TRUE, problems_with_pro...   \n",
            "11  [problems_with_search_TRUE, problems_with_sear...   \n",
            "12  [deployment_decisions_DEPLOY, deployment_decis...   \n",
            "13  [incentives_to_build_aps_STRONG, incentives_to...   \n",
            "14    [usefulness_of_aps_HIGH, usefulness_of_aps_LOW]   \n",
            "15  [competitive_dynamics_STRONG, competitive_dyna...   \n",
            "16      [deception_by_ai_TRUE, deception_by_ai_FALSE]   \n",
            "17  [corrective_feedback_EFFECTIVE, corrective_fee...   \n",
            "18  [warning_shots_OBSERVED, warning_shots_UNOBSER...   \n",
            "19  [rapid_capability_escalation_TRUE, rapid_capab...   \n",
            "20  [barriers_to_understanding_HIGH, barriers_to_u...   \n",
            "21  [adversarial_dynamics_TRUE, adversarial_dynami...   \n",
            "22        [stakes_of_error_HIGH, stakes_of_error_LOW]   \n",
            "\n",
            "                                               priors  \\\n",
            "0   {'p(existential_catastrophe_TRUE)': '0.05', 'p...   \n",
            "1   {'p(human_disempowerment_TRUE)': '0.208', 'p(h...   \n",
            "2   {'p(scale_of_power_seeking_TRUE)': '0.208', 'p...   \n",
            "3   {'p(misaligned_power_seeking_TRUE)': '0.338', ...   \n",
            "4   {'p(aps_systems_TRUE)': '0.65', 'p(aps_systems...   \n",
            "5   {'p(advanced_ai_capability_TRUE)': '0.80', 'p(...   \n",
            "6   {'p(agentic_planning_TRUE)': '0.85', 'p(agenti...   \n",
            "7   {'p(strategic_awareness_TRUE)': '0.75', 'p(str...   \n",
            "8   {'p(difficulty_of_alignment_TRUE)': '0.40', 'p...   \n",
            "9   {'p(instrumental_convergence_TRUE)': '0.75', '...   \n",
            "10  {'p(problems_with_proxies_TRUE)': '0.80', 'p(p...   \n",
            "11  {'p(problems_with_search_TRUE)': '0.70', 'p(pr...   \n",
            "12  {'p(deployment_decisions_DEPLOY)': '0.70', 'p(...   \n",
            "13  {'p(incentives_to_build_aps_STRONG)': '0.80', ...   \n",
            "14  {'p(usefulness_of_aps_HIGH)': '0.85', 'p(usefu...   \n",
            "15  {'p(competitive_dynamics_STRONG)': '0.75', 'p(...   \n",
            "16  {'p(deception_by_ai_TRUE)': '0.50', 'p(decepti...   \n",
            "17  {'p(corrective_feedback_EFFECTIVE)': '0.60', '...   \n",
            "18  {'p(warning_shots_OBSERVED)': '0.70', 'p(warni...   \n",
            "19  {'p(rapid_capability_escalation_TRUE)': '0.45'...   \n",
            "20  {'p(barriers_to_understanding_HIGH)': '0.70', ...   \n",
            "21  {'p(adversarial_dynamics_TRUE)': '0.60', 'p(ad...   \n",
            "22  {'p(stakes_of_error_HIGH)': '0.85', 'p(stakes_...   \n",
            "\n",
            "                                           posteriors  No_Parent  No_Children  \\\n",
            "0   {'p(existential_catastrophe_TRUE|human_disempo...       True         True   \n",
            "1   {'p(human_disempowerment_TRUE|scale_of_power_s...      False         True   \n",
            "2   {'p(scale_of_power_seeking_TRUE|misaligned_pow...      False        False   \n",
            "3   {'p(misaligned_power_seeking_TRUE|aps_systems_...      False        False   \n",
            "4   {'p(aps_systems_TRUE|advanced_ai_capability_TR...      False        False   \n",
            "5                                                  {}       True        False   \n",
            "6                                                  {}       True        False   \n",
            "7                                                  {}       True        False   \n",
            "8   {'p(difficulty_of_alignment_TRUE|instrumental_...      False        False   \n",
            "9                                                  {}       True        False   \n",
            "10                                                 {}       True        False   \n",
            "11                                                 {}       True        False   \n",
            "12  {'p(deployment_decisions_DEPLOY|incentives_to_...      False        False   \n",
            "13  {'p(incentives_to_build_aps_STRONG|usefulness_...      False        False   \n",
            "14                                                 {}       True        False   \n",
            "15                                                 {}       True        False   \n",
            "16                                                 {}       True        False   \n",
            "17  {'p(corrective_feedback_EFFECTIVE|warning_shot...      False        False   \n",
            "18                                                 {}       True        False   \n",
            "19                                                 {}       True        False   \n",
            "20  {'p(barriers_to_understanding_HIGH|misaligned_...       True         True   \n",
            "21  {'p(adversarial_dynamics_TRUE|misaligned_power...       True         True   \n",
            "22  {'p(stakes_of_error_HIGH|misaligned_power_seek...       True         True   \n",
            "\n",
            "                                parent_instantiations  \n",
            "0                                                  []  \n",
            "1   [[scale_of_power_seeking_TRUE, scale_of_power_...  \n",
            "2   [[misaligned_power_seeking_TRUE, misaligned_po...  \n",
            "3   [[aps_systems_TRUE, aps_systems_FALSE], [diffi...  \n",
            "4   [[advanced_ai_capability_TRUE, advanced_ai_cap...  \n",
            "5                                                  []  \n",
            "6                                                  []  \n",
            "7                                                  []  \n",
            "8   [[instrumental_convergence_TRUE, instrumental_...  \n",
            "9                                                  []  \n",
            "10                                                 []  \n",
            "11                                                 []  \n",
            "12  [[incentives_to_build_aps_STRONG, incentives_t...  \n",
            "13  [[usefulness_of_aps_HIGH, usefulness_of_aps_LO...  \n",
            "14                                                 []  \n",
            "15                                                 []  \n",
            "16                                                 []  \n",
            "17  [[warning_shots_OBSERVED, warning_shots_UNOBSE...  \n",
            "18                                                 []  \n",
            "19                                                 []  \n",
            "20                                                 []  \n",
            "21                                                 []  \n",
            "22                                                 []  \n"
          ]
        }
      ],
      "source": [
        "# Use the function to create and display the visualization\n",
        "\n",
        "print(result_df)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Conclusion: From Prototype to Production\n",
        "\n",
        "## Summary of Achievements\n",
        "\n",
        "This notebook has successfully demonstrated the core AMTAIR extraction pipeline, transforming structured argument representations into interactive Bayesian network visualizations through the following steps:\n",
        "\n",
        "1. **Environment Setup**: Established a reproducible environment with necessary libraries and data access\n",
        "2. **Argument Extraction**: Processed structured ArgDown representations preserving the hierarchical relationships\n",
        "3. **Probability Integration**: Enhanced arguments with probability information to create BayesDown\n",
        "4. **Data Transformation**: Converted BayesDown into structured DataFrame representation\n",
        "5. **Visualization & Analysis**: Created interactive Bayesian network visualizations with probability encoding\n",
        "\n",
        "The rain-sprinkler-lawn example, though simple, demonstrates all the key components of the extraction pipeline that can be applied to more complex AI safety arguments.\n",
        "\n",
        "## Limitations and Future Work\n",
        "\n",
        "While this prototype successfully demonstrates the core pipeline, several limitations and opportunities for future work remain:\n",
        "\n",
        "1. **LLM Extraction**: The current implementation focuses on processing pre-formatted ArgDown rather than performing extraction directly from unstructured text. Future work will integrate LLM-powered extraction.\n",
        "\n",
        "2. **Scalability**: The system has been tested on small examples; scaling to larger, more complex arguments will require additional optimization and handling of computational complexity.\n",
        "\n",
        "3. **Policy Evaluation**: The current implementation focuses on representation and visualization; future work will add policy evaluation capabilities by implementing intervention modeling.\n",
        "\n",
        "4. **Prediction Market Integration**: Future versions will integrate with forecasting platforms to incorporate live data into the models.\n",
        "\n",
        "## Connection to AMTAIR Project\n",
        "\n",
        "This prototype represents just one component of the broader AMTAIR project described in the project documentation (see PY_AMTAIRDescription and PY_AMTAIR_SoftwareToolsNMilestones). The full project includes:\n",
        "\n",
        "1. **AI Risk Pathway Analyzer (ARPA)**: The core extraction and visualization system demonstrated in this notebook\n",
        "2. **Worldview Comparator**: Tools for comparing different perspectives on AI risk\n",
        "3. **Policy Impact Evaluator**: Systems for evaluating intervention effects across scenarios\n",
        "4. **Strategic Intervention Generator**: Tools for identifying robust governance strategies\n",
        "\n",
        "Together, these components aim to address the coordination crisis in AI governance by providing computational tools that make implicit models explicit, identify cruxes of disagreement, and evaluate policy impacts across diverse worldviews.\n",
        "\n",
        "By transforming unstructured text into formal, analyzable representations, the AMTAIR project helps bridge the gaps between technical researchers, policy specialists, and other stakeholders, enabling more effective coordination in addressing existential risks from advanced AI."
      ],
      "metadata": {
        "id": "oatKYlKrOSiN"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kjbIj19epbrF"
      },
      "source": [
        "# 6.0 Save Outputs\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0QqlN6dYpm4s"
      },
      "source": [
        "# 6. Saving and Exporting Results\n",
        "\n",
        "This section provides tools for saving the notebook results and visualizations in various formats:\n",
        "\n",
        "1. **HTML Export**: Creates a self-contained HTML version of the notebook with all visualizations\n",
        "2. **Markdown Export**: Generates documentation-friendly Markdown version of the notebook\n",
        "3. **PDF Export**: Creates a PDF document for formal sharing (requires LaTeX installation)\n",
        "\n",
        "These exports are essential for:\n",
        "- Sharing analysis results with colleagues and stakeholders\n",
        "- Including visualizations in presentations and reports\n",
        "- Creating documentation for the AMTAIR project\n",
        "- Preserving results for future reference\n",
        "\n",
        "The different formats serve different purposes, from interactive exploration (HTML) to documentation (Markdown) to formal presentation (PDF).\n",
        "\n",
        "\n",
        "Instruction:\n",
        "\n",
        "Download the ipynb, which you want to convert, on your local computer.\n",
        "Run the code below to upload the ipynb.\n",
        "\n",
        "The html version will be downloaded automatically on your local machine.\n",
        "Enjoy it!"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "HZXrWJrzO7d-",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "2e9158a8-1ee0-4413-a946-bade1bb5f2da"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "--2025-04-26 22:34:17--  https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_rain-sprinkler-lawn/AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb\n",
            "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...\n",
            "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 1120047 (1.1M) [text/plain]\n",
            "Saving to: ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’\n",
            "\n",
            "\r          AMTAIR_Pr   0%[                    ]       0  --.-KB/s               \rAMTAIR_Prototype_ex 100%[===================>]   1.07M  --.-KB/s    in 0.07s   \n",
            "\n",
            "2025-04-26 22:34:17 (16.4 MB/s) - ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’ saved [1120047/1120047]\n",
            "\n",
            "✅ Successfully loaded notebook: AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb\n",
            "✅ Successfully saved HTML version to: AMTAIR_Prototype_example_rain-sprinkler-lawnIPYNB.html\n"
          ]
        }
      ],
      "source": [
        "# @title 6.0 --- Save Visualization and Notebook Outputs as .HTML---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Provides tools for saving the notebook results in various formats.\n",
        "\n",
        "This block offers functions to:\n",
        "1. Convert the notebook to HTML for easy sharing and viewing\n",
        "2. Convert the notebook to Markdown for documentation purposes\n",
        "3. Save the visualization outputs for external use\n",
        "\n",
        "These tools are essential for preserving the analysis results and making them\n",
        "accessible outside the notebook environment, supporting knowledge transfer\n",
        "and integration with other AMTAIR project components.\n",
        "\n",
        "DEPENDENCIES: nbformat, nbconvert modules\n",
        "INPUTS: Current notebook state\n",
        "OUTPUTS: HTML, Markdown, or other format versions of the notebook\n",
        "\"\"\"\n",
        "\n",
        "import nbformat\n",
        "from nbconvert import HTMLExporter\n",
        "import os\n",
        "\n",
        "# Repository URL variable for file access\n",
        "repo_url = \"https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_carlsmith/\"\n",
        "notebook_name = \"AMTAIR_Prototype_example_carlsmith\"  # Change when working with different examples\n",
        "\n",
        "# Download the notebook file\n",
        "!wget {repo_url}{notebook_name}.ipynb -O {notebook_name}.ipynb\n",
        "\n",
        "# Load the notebook\n",
        "try:\n",
        "  with open(f\"{notebook_name}.ipynb\") as f:\n",
        "    nb = nbformat.read(f, as_version=4)\n",
        "  print(f\"✅ Successfully loaded notebook: {notebook_name}.ipynb\")\n",
        "except FileNotFoundError:\n",
        "  print(f\"❌ Error: File '{notebook_name}.ipynb' not found. Please check if it was downloaded correctly.\")\n",
        "\n",
        "# Initialize the HTML exporter\n",
        "exporter = HTMLExporter()\n",
        "\n",
        "# Convert the notebook to HTML\n",
        "try:\n",
        "    (body, resources) = exporter.from_notebook_node(nb)\n",
        "\n",
        "    # Save the HTML to a file\n",
        "    with open(f\"{notebook_name}IPYNB.html\", \"w\") as f:\n",
        "        f.write(body)\n",
        "    print(f\"✅ Successfully saved HTML version to: {notebook_name}IPYNB.html\")\n",
        "except Exception as e:\n",
        "    print(f\"❌ Error converting notebook to HTML: {str(e)}\")"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pS6AhdiSCLw4"
      },
      "source": [
        "## Convert .ipynb Notebook to MarkDown"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "-5AfIsfEJ5rM",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "bb75526c-e815-453b-be50-88ada76420fc"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "--2025-04-26 22:33:43--  https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_rain-sprinkler-lawn/AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb\n",
            "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.109.133, 185.199.110.133, ...\n",
            "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 1120047 (1.1M) [text/plain]\n",
            "Saving to: ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’\n",
            "\n",
            "\r          AMTAIR_Pr   0%[                    ]       0  --.-KB/s               \rAMTAIR_Prototype_ex 100%[===================>]   1.07M  --.-KB/s    in 0.06s   \n",
            "\n",
            "2025-04-26 22:33:43 (18.1 MB/s) - ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’ saved [1120047/1120047]\n",
            "\n"
          ]
        }
      ],
      "source": [
        "# @title --- Convert .ipynb Notebook to MarkDown ---\n",
        "\n",
        "import nbformat\n",
        "from nbconvert import MarkdownExporter\n",
        "import os\n",
        "\n",
        "# repo_url = \"https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_1/\"\n",
        "notebook_name = \"AMTAIR_Prototype_example_carlsmith\"  #Change Notebook name and path when working on different examples\n",
        "\n",
        "# Download the notebook file\n",
        "!wget {repo_url}{notebook_name}.ipynb -O {notebook_name}.ipynb  # Corrected line\n",
        "\n",
        "# Load the notebook\n",
        "# add error handling for file not found\n",
        "try:\n",
        "  with open(f\"{notebook_name}.ipynb\") as f:\n",
        "    nb = nbformat.read(f, as_version=4)\n",
        "except FileNotFoundError:\n",
        "  print(f\"Error: File '{notebook_name}.ipynb' not found. Please check if it was downloaded correctly.\")\n",
        "\n",
        "\n",
        "# Initialize the Markdown exporter\n",
        "exporter = MarkdownExporter(exclude_output=True)  # Correct initialization\n",
        "\n",
        "# Convert the notebook to Markdown\n",
        "(body, resources) = exporter.from_notebook_node(nb)\n",
        "\n",
        "# Save the Markdown to a file\n",
        "with open(f\"{notebook_name}IPYNB.md\", \"w\") as f:\n",
        "    f.write(body)"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# @title 6.1 --- Convert Notebook to Markdown Documentation ---\n",
        "\n",
        "\"\"\"\n",
        "BLOCK PURPOSE: Converts the notebook to Markdown format for documentation purposes.\n",
        "\n",
        "Markdown is a lightweight markup language that is widely used for documentation\n",
        "and is easily readable in both plain text and rendered formats. This conversion:\n",
        "\n",
        "1. Preserves the structure and content of the notebook\n",
        "2. Creates a format suitable for inclusion in documentation systems\n",
        "3. Excludes code outputs to focus on the process and methodology\n",
        "4. Supports version control and collaboration on GitHub\n",
        "\n",
        "The resulting Markdown file can be used in project documentation, GitHub wikis,\n",
        "or as a standalone reference guide to the AMTAIR extraction pipeline.\n",
        "\n",
        "DEPENDENCIES: nbformat, nbconvert.MarkdownExporter modules\n",
        "INPUTS: Current notebook state\n",
        "OUTPUTS: Markdown version of the notebook\n",
        "\"\"\"\n",
        "\n",
        "import nbformat\n",
        "from nbconvert import MarkdownExporter\n",
        "import os\n",
        "\n",
        "# Repository URL variable for file access\n",
        "# repo_url = \"https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_carlsmith/\"\n",
        "notebook_name = \"AMTAIR_Prototype_example_carlsmith\"  # Change when working with different examples\n",
        "\n",
        "# Download the notebook file\n",
        "!wget {repo_url}{notebook_name}.ipynb -O {notebook_name}.ipynb\n",
        "\n",
        "# Load the notebook\n",
        "try:\n",
        "  with open(f\"{notebook_name}.ipynb\") as f:\n",
        "    nb = nbformat.read(f, as_version=4)\n",
        "  print(f\"✅ Successfully loaded notebook: {notebook_name}.ipynb\")\n",
        "except FileNotFoundError:\n",
        "  print(f\"❌ Error: File '{notebook_name}.ipynb' not found. Please check if it was downloaded correctly.\")\n",
        "\n",
        "\n",
        "# Initialize the Markdown exporter\n",
        "exporter = MarkdownExporter(exclude_output=True)  # Exclude outputs for cleaner documentation\n",
        "\n",
        "# Convert the notebook to Markdown\n",
        "try:\n",
        "    (body, resources) = exporter.from_notebook_node(nb)\n",
        "\n",
        "    # Save the Markdown to a file\n",
        "    with open(f\"{notebook_name}IPYNB.md\", \"w\") as f:\n",
        "        f.write(body)\n",
        "    print(f\"✅ Successfully saved Markdown version to: {notebook_name}IPYNB.md\")\n",
        "except Exception as e:\n",
        "    print(f\"❌ Error converting notebook to Markdown: {str(e)}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3j7R61pKM4WN",
        "outputId": "2efa4a9a-719f-4314-d30f-af0f95353e2e"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "--2025-04-26 22:31:45--  https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_rain-sprinkler-lawn/AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb\n",
            "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\n",
            "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 1120047 (1.1M) [text/plain]\n",
            "Saving to: ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’\n",
            "\n",
            "\r          AMTAIR_Pr   0%[                    ]       0  --.-KB/s               \rAMTAIR_Prototype_ex 100%[===================>]   1.07M  --.-KB/s    in 0.06s   \n",
            "\n",
            "2025-04-26 22:31:45 (18.0 MB/s) - ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’ saved [1120047/1120047]\n",
            "\n",
            "✅ Successfully loaded notebook: AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb\n",
            "✅ Successfully saved Markdown version to: AMTAIR_Prototype_example_rain-sprinkler-lawnIPYNB.md\n"
          ]
        }
      ]
    },
    {
      "source": [
        "import nbformat\n",
        "from nbconvert import PDFExporter\n",
        "import os\n",
        "import subprocess\n",
        "import re\n",
        "\n",
        "def escape_latex_special_chars(text):\n",
        "  \"\"\"Escapes special LaTeX characters in a string.\"\"\"\n",
        "  latex_special_chars = ['&', '%', '#', '_', '{', '}', '~', '^', '\\\\']\n",
        "  replacement_patterns = [\n",
        "      (char, '\\\\' + char) for char in latex_special_chars\n",
        "  ]\n",
        "\n",
        "  # Escape reserved characters\n",
        "  for original, replacement in replacement_patterns:\n",
        "    text = text.replace(original, replacement) # This is the fix\n",
        "  return text\n",
        "\n",
        "# Function to check if a command is available\n",
        "def is_command_available(command):\n",
        "    try:\n",
        "        subprocess.run([command], capture_output=True, check=True)\n",
        "        return True\n",
        "    except (subprocess.CalledProcessError, FileNotFoundError):\n",
        "        return False\n",
        "\n",
        "# Check if xelatex is installed, and install if necessary\n",
        "if not is_command_available(\"xelatex\"):\n",
        "    print(\"Installing necessary TeX packages...\")\n",
        "    !apt-get install -y texlive-xetex texlive-fonts-recommended texlive-plain-generic\n",
        "    print(\"TeX packages installed successfully.\")\n",
        "else:\n",
        "    print(\"xelatex is already installed. Skipping installation.\")\n",
        "\n",
        "# repo_url = \"https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_1/\"\n",
        "notebook_name = \"AMTAIR_Prototype_example_carlsmith\"  #Change Notebook name and path when working on different examples\n",
        "\n",
        "# Download the notebook file\n",
        "!wget {repo_url}{notebook_name}.ipynb -O {notebook_name}.ipynb  # Corrected line\n",
        "\n",
        "# Load the notebook\n",
        "# add error handling for file not found\n",
        "try:\n",
        "  with open(f\"{notebook_name}.ipynb\") as f:\n",
        "    nb = nbformat.read(f, as_version=4)\n",
        "except FileNotFoundError:\n",
        "  print(f\"Error: File '{notebook_name}.ipynb' not found. Please check if it was downloaded correctly.\")\n",
        "\n",
        "\n",
        "# Initialize the PDF exporter\n",
        "exporter = PDFExporter(exclude_output=True)  # Changed to PDFExporter\n",
        "\n",
        "# Sanitize notebook cell titles to escape special LaTeX characters like '&'\n",
        "for cell in nb.cells:\n",
        "    if 'cell_type' in cell and cell['cell_type'] == 'markdown':\n",
        "        if 'source' in cell and isinstance(cell['source'], str):\n",
        "            # Replace '&' with '\\protect&' in markdown cell titles AND CONTENT\n",
        "            # Updated to use escape_latex_special_chars function\n",
        "            cell['source'] = escape_latex_special_chars(cell['source'])\n",
        "            # Additionally, escape special characters in headings\n",
        "            cell['source'] = re.sub(r'(#+)\\s*(.*)', lambda m: m.group(1) + ' ' + escape_latex_special_chars(m.group(2)), cell['source'])\n",
        "\n",
        "\n",
        "\n",
        "# Convert the notebook to PDF\n",
        "(body, resources) = exporter.from_notebook_node(nb)\n",
        "\n",
        "\n",
        "# Save the PDF to a file\n",
        "with open(f\"{notebook_name}IPYNB.pdf\", \"wb\") as f:  # Changed to 'wb' for binary writing\n",
        "    f.write(body)"
      ],
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "FLQFkvtamPRG",
        "outputId": "1e4332d2-4ea7-49e6-f6dd-3b92447dfced"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Installing necessary TeX packages...\n",
            "Reading package lists... Done\n",
            "Building dependency tree... Done\n",
            "Reading state information... Done\n",
            "The following additional packages will be installed:\n",
            "  dvisvgm fonts-droid-fallback fonts-lato fonts-lmodern fonts-noto-mono\n",
            "  fonts-texgyre fonts-urw-base35 libapache-pom-java libcommons-logging-java\n",
            "  libcommons-parent-java libfontbox-java libgs9 libgs9-common libidn12\n",
            "  libijs-0.35 libjbig2dec0 libkpathsea6 libpdfbox-java libptexenc1 libruby3.0\n",
            "  libsynctex2 libteckit0 libtexlua53 libtexluajit2 libwoff1 libzzip-0-13\n",
            "  lmodern poppler-data preview-latex-style rake ruby ruby-net-telnet\n",
            "  ruby-rubygems ruby-webrick ruby-xmlrpc ruby3.0 rubygems-integration t1utils\n",
            "  teckit tex-common tex-gyre texlive-base texlive-binaries texlive-latex-base\n",
            "  texlive-latex-extra texlive-latex-recommended texlive-pictures tipa\n",
            "  xfonts-encodings xfonts-utils\n",
            "Suggested packages:\n",
            "  fonts-noto fonts-freefont-otf | fonts-freefont-ttf libavalon-framework-java\n",
            "  libcommons-logging-java-doc libexcalibur-logkit-java liblog4j1.2-java\n",
            "  poppler-utils ghostscript fonts-japanese-mincho | fonts-ipafont-mincho\n",
            "  fonts-japanese-gothic | fonts-ipafont-gothic fonts-arphic-ukai\n",
            "  fonts-arphic-uming fonts-nanum ri ruby-dev bundler debhelper gv\n",
            "  | postscript-viewer perl-tk xpdf | pdf-viewer xzdec\n",
            "  texlive-fonts-recommended-doc texlive-latex-base-doc python3-pygments\n",
            "  icc-profiles libfile-which-perl libspreadsheet-parseexcel-perl\n",
            "  texlive-latex-extra-doc texlive-latex-recommended-doc texlive-luatex\n",
            "  texlive-pstricks dot2tex prerex texlive-pictures-doc vprerex\n",
            "  default-jre-headless tipa-doc\n",
            "The following NEW packages will be installed:\n",
            "  dvisvgm fonts-droid-fallback fonts-lato fonts-lmodern fonts-noto-mono\n",
            "  fonts-texgyre fonts-urw-base35 libapache-pom-java libcommons-logging-java\n",
            "  libcommons-parent-java libfontbox-java libgs9 libgs9-common libidn12\n",
            "  libijs-0.35 libjbig2dec0 libkpathsea6 libpdfbox-java libptexenc1 libruby3.0\n",
            "  libsynctex2 libteckit0 libtexlua53 libtexluajit2 libwoff1 libzzip-0-13\n",
            "  lmodern poppler-data preview-latex-style rake ruby ruby-net-telnet\n",
            "  ruby-rubygems ruby-webrick ruby-xmlrpc ruby3.0 rubygems-integration t1utils\n",
            "  teckit tex-common tex-gyre texlive-base texlive-binaries\n",
            "  texlive-fonts-recommended texlive-latex-base texlive-latex-extra\n",
            "  texlive-latex-recommended texlive-pictures texlive-plain-generic\n",
            "  texlive-xetex tipa xfonts-encodings xfonts-utils\n",
            "0 upgraded, 53 newly installed, 0 to remove and 34 not upgraded.\n",
            "Need to get 182 MB of archives.\n",
            "After this operation, 571 MB of additional disk space will be used.\n",
            "Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-droid-fallback all 1:6.0.1r16-1.1build1 [1,805 kB]\n",
            "Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-lato all 2.0-2.1 [2,696 kB]\n",
            "Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 poppler-data all 0.4.11-1 [2,171 kB]\n",
            "Get:4 http://archive.ubuntu.com/ubuntu jammy/universe amd64 tex-common all 6.17 [33.7 kB]\n",
            "Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-urw-base35 all 20200910-1 [6,367 kB]\n",
            "Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgs9-common all 9.55.0~dfsg1-0ubuntu5.11 [753 kB]\n",
            "Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libidn12 amd64 1.38-4ubuntu1 [60.0 kB]\n",
            "Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 libijs-0.35 amd64 0.35-15build2 [16.5 kB]\n",
            "Get:9 http://archive.ubuntu.com/ubuntu jammy/main amd64 libjbig2dec0 amd64 0.19-3build2 [64.7 kB]\n",
            "Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgs9 amd64 9.55.0~dfsg1-0ubuntu5.11 [5,031 kB]\n",
            "Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libkpathsea6 amd64 2021.20210626.59705-1ubuntu0.2 [60.4 kB]\n",
            "Get:12 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwoff1 amd64 1.0.2-1build4 [45.2 kB]\n",
            "Get:13 http://archive.ubuntu.com/ubuntu jammy/universe amd64 dvisvgm amd64 2.13.1-1 [1,221 kB]\n",
            "Get:14 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-lmodern all 2.004.5-6.1 [4,532 kB]\n",
            "Get:15 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-noto-mono all 20201225-1build1 [397 kB]\n",
            "Get:16 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-texgyre all 20180621-3.1 [10.2 MB]\n",
            "Get:17 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libapache-pom-java all 18-1 [4,720 B]\n",
            "Get:18 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libcommons-parent-java all 43-1 [10.8 kB]\n",
            "Get:19 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libcommons-logging-java all 1.2-2 [60.3 kB]\n",
            "Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libptexenc1 amd64 2021.20210626.59705-1ubuntu0.2 [39.1 kB]\n",
            "Get:21 http://archive.ubuntu.com/ubuntu jammy/main amd64 rubygems-integration all 1.18 [5,336 B]\n",
            "Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ruby3.0 amd64 3.0.2-7ubuntu2.10 [50.1 kB]\n",
            "Get:23 http://archive.ubuntu.com/ubuntu jammy/main amd64 ruby-rubygems all 3.3.5-2 [228 kB]\n",
            "Get:24 http://archive.ubuntu.com/ubuntu jammy/main amd64 ruby amd64 1:3.0~exp1 [5,100 B]\n",
            "Get:25 http://archive.ubuntu.com/ubuntu jammy/main amd64 rake all 13.0.6-2 [61.7 kB]\n",
            "Get:26 http://archive.ubuntu.com/ubuntu jammy/main amd64 ruby-net-telnet all 0.1.1-2 [12.6 kB]\n",
            "Get:27 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ruby-webrick all 1.7.0-3ubuntu0.1 [52.1 kB]\n",
            "Get:28 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 ruby-xmlrpc all 0.3.2-1ubuntu0.1 [24.9 kB]\n",
            "Get:29 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libruby3.0 amd64 3.0.2-7ubuntu2.10 [5,114 kB]\n",
            "Get:30 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libsynctex2 amd64 2021.20210626.59705-1ubuntu0.2 [55.6 kB]\n",
            "Get:31 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libteckit0 amd64 2.5.11+ds1-1 [421 kB]\n",
            "Get:32 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtexlua53 amd64 2021.20210626.59705-1ubuntu0.2 [120 kB]\n",
            "Get:33 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtexluajit2 amd64 2021.20210626.59705-1ubuntu0.2 [267 kB]\n",
            "Get:34 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libzzip-0-13 amd64 0.13.72+dfsg.1-1.1 [27.0 kB]\n",
            "Get:35 http://archive.ubuntu.com/ubuntu jammy/main amd64 xfonts-encodings all 1:1.0.5-0ubuntu2 [578 kB]\n",
            "Get:36 http://archive.ubuntu.com/ubuntu jammy/main amd64 xfonts-utils amd64 1:7.7+6build2 [94.6 kB]\n",
            "Get:37 http://archive.ubuntu.com/ubuntu jammy/universe amd64 lmodern all 2.004.5-6.1 [9,471 kB]\n",
            "Get:38 http://archive.ubuntu.com/ubuntu jammy/universe amd64 preview-latex-style all 12.2-1ubuntu1 [185 kB]\n",
            "Get:39 http://archive.ubuntu.com/ubuntu jammy/main amd64 t1utils amd64 1.41-4build2 [61.3 kB]\n",
            "Get:40 http://archive.ubuntu.com/ubuntu jammy/universe amd64 teckit amd64 2.5.11+ds1-1 [699 kB]\n",
            "Get:41 http://archive.ubuntu.com/ubuntu jammy/universe amd64 tex-gyre all 20180621-3.1 [6,209 kB]\n",
            "Get:42 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 texlive-binaries amd64 2021.20210626.59705-1ubuntu0.2 [9,860 kB]\n",
            "Get:43 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-base all 2021.20220204-1 [21.0 MB]\n",
            "Get:44 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-fonts-recommended all 2021.20220204-1 [4,972 kB]\n",
            "Get:45 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-latex-base all 2021.20220204-1 [1,128 kB]\n",
            "Get:46 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libfontbox-java all 1:1.8.16-2 [207 kB]\n",
            "Get:47 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libpdfbox-java all 1:1.8.16-2 [5,199 kB]\n",
            "Get:48 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-latex-recommended all 2021.20220204-1 [14.4 MB]\n",
            "Get:49 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-pictures all 2021.20220204-1 [8,720 kB]\n",
            "Get:50 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-latex-extra all 2021.20220204-1 [13.9 MB]\n",
            "Get:51 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-plain-generic all 2021.20220204-1 [27.5 MB]\n",
            "Get:52 http://archive.ubuntu.com/ubuntu jammy/universe amd64 tipa all 2:1.3-21 [2,967 kB]\n",
            "Get:53 http://archive.ubuntu.com/ubuntu jammy/universe amd64 texlive-xetex all 2021.20220204-1 [12.4 MB]\n",
            "Fetched 182 MB in 3s (69.8 MB/s)\n",
            "Extracting templates from packages: 100%\n",
            "Preconfiguring packages ...\n",
            "Selecting previously unselected package fonts-droid-fallback.\n",
            "(Reading database ... 126558 files and directories currently installed.)\n",
            "Preparing to unpack .../00-fonts-droid-fallback_1%3a6.0.1r16-1.1build1_all.deb ...\n",
            "Unpacking fonts-droid-fallback (1:6.0.1r16-1.1build1) ...\n",
            "Selecting previously unselected package fonts-lato.\n",
            "Preparing to unpack .../01-fonts-lato_2.0-2.1_all.deb ...\n",
            "Unpacking fonts-lato (2.0-2.1) ...\n",
            "Selecting previously unselected package poppler-data.\n",
            "Preparing to unpack .../02-poppler-data_0.4.11-1_all.deb ...\n",
            "Unpacking poppler-data (0.4.11-1) ...\n",
            "Selecting previously unselected package tex-common.\n",
            "Preparing to unpack .../03-tex-common_6.17_all.deb ...\n",
            "Unpacking tex-common (6.17) ...\n",
            "Selecting previously unselected package fonts-urw-base35.\n",
            "Preparing to unpack .../04-fonts-urw-base35_20200910-1_all.deb ...\n",
            "Unpacking fonts-urw-base35 (20200910-1) ...\n",
            "Selecting previously unselected package libgs9-common.\n",
            "Preparing to unpack .../05-libgs9-common_9.55.0~dfsg1-0ubuntu5.11_all.deb ...\n",
            "Unpacking libgs9-common (9.55.0~dfsg1-0ubuntu5.11) ...\n",
            "Selecting previously unselected package libidn12:amd64.\n",
            "Preparing to unpack .../06-libidn12_1.38-4ubuntu1_amd64.deb ...\n",
            "Unpacking libidn12:amd64 (1.38-4ubuntu1) ...\n",
            "Selecting previously unselected package libijs-0.35:amd64.\n",
            "Preparing to unpack .../07-libijs-0.35_0.35-15build2_amd64.deb ...\n",
            "Unpacking libijs-0.35:amd64 (0.35-15build2) ...\n",
            "Selecting previously unselected package libjbig2dec0:amd64.\n",
            "Preparing to unpack .../08-libjbig2dec0_0.19-3build2_amd64.deb ...\n",
            "Unpacking libjbig2dec0:amd64 (0.19-3build2) ...\n",
            "Selecting previously unselected package libgs9:amd64.\n",
            "Preparing to unpack .../09-libgs9_9.55.0~dfsg1-0ubuntu5.11_amd64.deb ...\n",
            "Unpacking libgs9:amd64 (9.55.0~dfsg1-0ubuntu5.11) ...\n",
            "Selecting previously unselected package libkpathsea6:amd64.\n",
            "Preparing to unpack .../10-libkpathsea6_2021.20210626.59705-1ubuntu0.2_amd64.deb ...\n",
            "Unpacking libkpathsea6:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Selecting previously unselected package libwoff1:amd64.\n",
            "Preparing to unpack .../11-libwoff1_1.0.2-1build4_amd64.deb ...\n",
            "Unpacking libwoff1:amd64 (1.0.2-1build4) ...\n",
            "Selecting previously unselected package dvisvgm.\n",
            "Preparing to unpack .../12-dvisvgm_2.13.1-1_amd64.deb ...\n",
            "Unpacking dvisvgm (2.13.1-1) ...\n",
            "Selecting previously unselected package fonts-lmodern.\n",
            "Preparing to unpack .../13-fonts-lmodern_2.004.5-6.1_all.deb ...\n",
            "Unpacking fonts-lmodern (2.004.5-6.1) ...\n",
            "Selecting previously unselected package fonts-noto-mono.\n",
            "Preparing to unpack .../14-fonts-noto-mono_20201225-1build1_all.deb ...\n",
            "Unpacking fonts-noto-mono (20201225-1build1) ...\n",
            "Selecting previously unselected package fonts-texgyre.\n",
            "Preparing to unpack .../15-fonts-texgyre_20180621-3.1_all.deb ...\n",
            "Unpacking fonts-texgyre (20180621-3.1) ...\n",
            "Selecting previously unselected package libapache-pom-java.\n",
            "Preparing to unpack .../16-libapache-pom-java_18-1_all.deb ...\n",
            "Unpacking libapache-pom-java (18-1) ...\n",
            "Selecting previously unselected package libcommons-parent-java.\n",
            "Preparing to unpack .../17-libcommons-parent-java_43-1_all.deb ...\n",
            "Unpacking libcommons-parent-java (43-1) ...\n",
            "Selecting previously unselected package libcommons-logging-java.\n",
            "Preparing to unpack .../18-libcommons-logging-java_1.2-2_all.deb ...\n",
            "Unpacking libcommons-logging-java (1.2-2) ...\n",
            "Selecting previously unselected package libptexenc1:amd64.\n",
            "Preparing to unpack .../19-libptexenc1_2021.20210626.59705-1ubuntu0.2_amd64.deb ...\n",
            "Unpacking libptexenc1:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Selecting previously unselected package rubygems-integration.\n",
            "Preparing to unpack .../20-rubygems-integration_1.18_all.deb ...\n",
            "Unpacking rubygems-integration (1.18) ...\n",
            "Selecting previously unselected package ruby3.0.\n",
            "Preparing to unpack .../21-ruby3.0_3.0.2-7ubuntu2.10_amd64.deb ...\n",
            "Unpacking ruby3.0 (3.0.2-7ubuntu2.10) ...\n",
            "Selecting previously unselected package ruby-rubygems.\n",
            "Preparing to unpack .../22-ruby-rubygems_3.3.5-2_all.deb ...\n",
            "Unpacking ruby-rubygems (3.3.5-2) ...\n",
            "Selecting previously unselected package ruby.\n",
            "Preparing to unpack .../23-ruby_1%3a3.0~exp1_amd64.deb ...\n",
            "Unpacking ruby (1:3.0~exp1) ...\n",
            "Selecting previously unselected package rake.\n",
            "Preparing to unpack .../24-rake_13.0.6-2_all.deb ...\n",
            "Unpacking rake (13.0.6-2) ...\n",
            "Selecting previously unselected package ruby-net-telnet.\n",
            "Preparing to unpack .../25-ruby-net-telnet_0.1.1-2_all.deb ...\n",
            "Unpacking ruby-net-telnet (0.1.1-2) ...\n",
            "Selecting previously unselected package ruby-webrick.\n",
            "Preparing to unpack .../26-ruby-webrick_1.7.0-3ubuntu0.1_all.deb ...\n",
            "Unpacking ruby-webrick (1.7.0-3ubuntu0.1) ...\n",
            "Selecting previously unselected package ruby-xmlrpc.\n",
            "Preparing to unpack .../27-ruby-xmlrpc_0.3.2-1ubuntu0.1_all.deb ...\n",
            "Unpacking ruby-xmlrpc (0.3.2-1ubuntu0.1) ...\n",
            "Selecting previously unselected package libruby3.0:amd64.\n",
            "Preparing to unpack .../28-libruby3.0_3.0.2-7ubuntu2.10_amd64.deb ...\n",
            "Unpacking libruby3.0:amd64 (3.0.2-7ubuntu2.10) ...\n",
            "Selecting previously unselected package libsynctex2:amd64.\n",
            "Preparing to unpack .../29-libsynctex2_2021.20210626.59705-1ubuntu0.2_amd64.deb ...\n",
            "Unpacking libsynctex2:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Selecting previously unselected package libteckit0:amd64.\n",
            "Preparing to unpack .../30-libteckit0_2.5.11+ds1-1_amd64.deb ...\n",
            "Unpacking libteckit0:amd64 (2.5.11+ds1-1) ...\n",
            "Selecting previously unselected package libtexlua53:amd64.\n",
            "Preparing to unpack .../31-libtexlua53_2021.20210626.59705-1ubuntu0.2_amd64.deb ...\n",
            "Unpacking libtexlua53:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Selecting previously unselected package libtexluajit2:amd64.\n",
            "Preparing to unpack .../32-libtexluajit2_2021.20210626.59705-1ubuntu0.2_amd64.deb ...\n",
            "Unpacking libtexluajit2:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Selecting previously unselected package libzzip-0-13:amd64.\n",
            "Preparing to unpack .../33-libzzip-0-13_0.13.72+dfsg.1-1.1_amd64.deb ...\n",
            "Unpacking libzzip-0-13:amd64 (0.13.72+dfsg.1-1.1) ...\n",
            "Selecting previously unselected package xfonts-encodings.\n",
            "Preparing to unpack .../34-xfonts-encodings_1%3a1.0.5-0ubuntu2_all.deb ...\n",
            "Unpacking xfonts-encodings (1:1.0.5-0ubuntu2) ...\n",
            "Selecting previously unselected package xfonts-utils.\n",
            "Preparing to unpack .../35-xfonts-utils_1%3a7.7+6build2_amd64.deb ...\n",
            "Unpacking xfonts-utils (1:7.7+6build2) ...\n",
            "Selecting previously unselected package lmodern.\n",
            "Preparing to unpack .../36-lmodern_2.004.5-6.1_all.deb ...\n",
            "Unpacking lmodern (2.004.5-6.1) ...\n",
            "Selecting previously unselected package preview-latex-style.\n",
            "Preparing to unpack .../37-preview-latex-style_12.2-1ubuntu1_all.deb ...\n",
            "Unpacking preview-latex-style (12.2-1ubuntu1) ...\n",
            "Selecting previously unselected package t1utils.\n",
            "Preparing to unpack .../38-t1utils_1.41-4build2_amd64.deb ...\n",
            "Unpacking t1utils (1.41-4build2) ...\n",
            "Selecting previously unselected package teckit.\n",
            "Preparing to unpack .../39-teckit_2.5.11+ds1-1_amd64.deb ...\n",
            "Unpacking teckit (2.5.11+ds1-1) ...\n",
            "Selecting previously unselected package tex-gyre.\n",
            "Preparing to unpack .../40-tex-gyre_20180621-3.1_all.deb ...\n",
            "Unpacking tex-gyre (20180621-3.1) ...\n",
            "Selecting previously unselected package texlive-binaries.\n",
            "Preparing to unpack .../41-texlive-binaries_2021.20210626.59705-1ubuntu0.2_amd64.deb ...\n",
            "Unpacking texlive-binaries (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Selecting previously unselected package texlive-base.\n",
            "Preparing to unpack .../42-texlive-base_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-base (2021.20220204-1) ...\n",
            "Selecting previously unselected package texlive-fonts-recommended.\n",
            "Preparing to unpack .../43-texlive-fonts-recommended_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-fonts-recommended (2021.20220204-1) ...\n",
            "Selecting previously unselected package texlive-latex-base.\n",
            "Preparing to unpack .../44-texlive-latex-base_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-latex-base (2021.20220204-1) ...\n",
            "Selecting previously unselected package libfontbox-java.\n",
            "Preparing to unpack .../45-libfontbox-java_1%3a1.8.16-2_all.deb ...\n",
            "Unpacking libfontbox-java (1:1.8.16-2) ...\n",
            "Selecting previously unselected package libpdfbox-java.\n",
            "Preparing to unpack .../46-libpdfbox-java_1%3a1.8.16-2_all.deb ...\n",
            "Unpacking libpdfbox-java (1:1.8.16-2) ...\n",
            "Selecting previously unselected package texlive-latex-recommended.\n",
            "Preparing to unpack .../47-texlive-latex-recommended_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-latex-recommended (2021.20220204-1) ...\n",
            "Selecting previously unselected package texlive-pictures.\n",
            "Preparing to unpack .../48-texlive-pictures_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-pictures (2021.20220204-1) ...\n",
            "Selecting previously unselected package texlive-latex-extra.\n",
            "Preparing to unpack .../49-texlive-latex-extra_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-latex-extra (2021.20220204-1) ...\n",
            "Selecting previously unselected package texlive-plain-generic.\n",
            "Preparing to unpack .../50-texlive-plain-generic_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-plain-generic (2021.20220204-1) ...\n",
            "Selecting previously unselected package tipa.\n",
            "Preparing to unpack .../51-tipa_2%3a1.3-21_all.deb ...\n",
            "Unpacking tipa (2:1.3-21) ...\n",
            "Selecting previously unselected package texlive-xetex.\n",
            "Preparing to unpack .../52-texlive-xetex_2021.20220204-1_all.deb ...\n",
            "Unpacking texlive-xetex (2021.20220204-1) ...\n",
            "Setting up fonts-lato (2.0-2.1) ...\n",
            "Setting up fonts-noto-mono (20201225-1build1) ...\n",
            "Setting up libwoff1:amd64 (1.0.2-1build4) ...\n",
            "Setting up libtexlua53:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Setting up libijs-0.35:amd64 (0.35-15build2) ...\n",
            "Setting up libtexluajit2:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Setting up libfontbox-java (1:1.8.16-2) ...\n",
            "Setting up rubygems-integration (1.18) ...\n",
            "Setting up libzzip-0-13:amd64 (0.13.72+dfsg.1-1.1) ...\n",
            "Setting up fonts-urw-base35 (20200910-1) ...\n",
            "Setting up poppler-data (0.4.11-1) ...\n",
            "Setting up tex-common (6.17) ...\n",
            "update-language: texlive-base not installed and configured, doing nothing!\n",
            "Setting up libjbig2dec0:amd64 (0.19-3build2) ...\n",
            "Setting up libteckit0:amd64 (2.5.11+ds1-1) ...\n",
            "Setting up libapache-pom-java (18-1) ...\n",
            "Setting up ruby-net-telnet (0.1.1-2) ...\n",
            "Setting up xfonts-encodings (1:1.0.5-0ubuntu2) ...\n",
            "Setting up t1utils (1.41-4build2) ...\n",
            "Setting up libidn12:amd64 (1.38-4ubuntu1) ...\n",
            "Setting up fonts-texgyre (20180621-3.1) ...\n",
            "Setting up libkpathsea6:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Setting up ruby-webrick (1.7.0-3ubuntu0.1) ...\n",
            "Setting up fonts-lmodern (2.004.5-6.1) ...\n",
            "Setting up fonts-droid-fallback (1:6.0.1r16-1.1build1) ...\n",
            "Setting up ruby-xmlrpc (0.3.2-1ubuntu0.1) ...\n",
            "Setting up libsynctex2:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Setting up libgs9-common (9.55.0~dfsg1-0ubuntu5.11) ...\n",
            "Setting up teckit (2.5.11+ds1-1) ...\n",
            "Setting up libpdfbox-java (1:1.8.16-2) ...\n",
            "Setting up libgs9:amd64 (9.55.0~dfsg1-0ubuntu5.11) ...\n",
            "Setting up preview-latex-style (12.2-1ubuntu1) ...\n",
            "Setting up libcommons-parent-java (43-1) ...\n",
            "Setting up dvisvgm (2.13.1-1) ...\n",
            "Setting up libcommons-logging-java (1.2-2) ...\n",
            "Setting up xfonts-utils (1:7.7+6build2) ...\n",
            "Setting up libptexenc1:amd64 (2021.20210626.59705-1ubuntu0.2) ...\n",
            "Setting up texlive-binaries (2021.20210626.59705-1ubuntu0.2) ...\n",
            "update-alternatives: using /usr/bin/xdvi-xaw to provide /usr/bin/xdvi.bin (xdvi.bin) in auto mode\n",
            "update-alternatives: using /usr/bin/bibtex.original to provide /usr/bin/bibtex (bibtex) in auto mode\n",
            "Setting up lmodern (2.004.5-6.1) ...\n",
            "Setting up texlive-base (2021.20220204-1) ...\n",
            "/usr/bin/ucfr\n",
            "/usr/bin/ucfr\n",
            "/usr/bin/ucfr\n",
            "/usr/bin/ucfr\n",
            "mktexlsr: Updating /var/lib/texmf/ls-R-TEXLIVEDIST... \n",
            "mktexlsr: Updating /var/lib/texmf/ls-R-TEXMFMAIN... \n",
            "mktexlsr: Updating /var/lib/texmf/ls-R... \n",
            "mktexlsr: Done.\n",
            "tl-paper: setting paper size for dvips to a4: /var/lib/texmf/dvips/config/config-paper.ps\n",
            "tl-paper: setting paper size for dvipdfmx to a4: /var/lib/texmf/dvipdfmx/dvipdfmx-paper.cfg\n",
            "tl-paper: setting paper size for xdvi to a4: /var/lib/texmf/xdvi/XDvi-paper\n",
            "tl-paper: setting paper size for pdftex to a4: /var/lib/texmf/tex/generic/tex-ini-files/pdftexconfig.tex\n",
            "Setting up tex-gyre (20180621-3.1) ...\n",
            "Setting up texlive-plain-generic (2021.20220204-1) ...\n",
            "Setting up texlive-latex-base (2021.20220204-1) ...\n",
            "Setting up texlive-latex-recommended (2021.20220204-1) ...\n",
            "Setting up texlive-pictures (2021.20220204-1) ...\n",
            "Setting up texlive-fonts-recommended (2021.20220204-1) ...\n",
            "Setting up tipa (2:1.3-21) ...\n",
            "Setting up texlive-latex-extra (2021.20220204-1) ...\n",
            "Setting up texlive-xetex (2021.20220204-1) ...\n",
            "Setting up rake (13.0.6-2) ...\n",
            "Setting up libruby3.0:amd64 (3.0.2-7ubuntu2.10) ...\n",
            "Setting up ruby3.0 (3.0.2-7ubuntu2.10) ...\n",
            "Setting up ruby (1:3.0~exp1) ...\n",
            "Setting up ruby-rubygems (3.3.5-2) ...\n",
            "Processing triggers for man-db (2.10.2-1) ...\n",
            "Processing triggers for mailcap (3.70+nmu1ubuntu1) ...\n",
            "Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ...\n",
            "Processing triggers for libc-bin (2.35-0ubuntu3.8) ...\n",
            "/sbin/ldconfig.real: /usr/local/lib/libhwloc.so.15 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtbbbind.so.3 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libur_loader.so.0 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc.so.2 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtbb.so.12 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc_proxy.so.2 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtcm.so.1 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libur_adapter_level_zero.so.0 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libur_adapter_opencl.so.0 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtcm_debug.so.1 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libumf.so.0 is not a symbolic link\n",
            "\n",
            "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_0.so.3 is not a symbolic link\n",
            "\n",
            "Processing triggers for tex-common (6.17) ...\n",
            "Running updmap-sys. This may take some time... done.\n",
            "Running mktexlsr /var/lib/texmf ... done.\n",
            "Building format(s) --all.\n",
            "\tThis may take some time... done.\n",
            "TeX packages installed successfully.\n",
            "--2025-04-26 22:32:56--  https://raw.githubusercontent.com/SingularitySmith/AMTAIR_Prototype/main/data/example_rain-sprinkler-lawn/AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb\n",
            "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...\n",
            "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 1120047 (1.1M) [text/plain]\n",
            "Saving to: ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’\n",
            "\n",
            "AMTAIR_Prototype_ex 100%[===================>]   1.07M  --.-KB/s    in 0.06s   \n",
            "\n",
            "2025-04-26 22:32:56 (17.0 MB/s) - ‘AMTAIR_Prototype_example_rain-sprinkler-lawn.ipynb’ saved [1120047/1120047]\n",
            "\n"
          ]
        }
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [
        "57YvCx9dom5J",
        "ZWx7CRfHn8Va",
        "mbRSd0SK5_sA"
      ],
      "provenance": [],
      "toc_visible": true
    },
    "kernelspec": {
      "display_name": "base",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.11.5"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}

<!-- For the interactive version of this analysis, visit: [Google Colab](https://colab.research.google.com/github/VJMeyer/submission/blob/main/AMTAIR_Prototype/data/example_carlsmith/AMTAIR_Prototype_example_carlsmith.ipynb) -->

(Format:) ~ Anything that makes it easier to understand

  • short sentences
  • paragraphs (one idea per paragraph)
  • simplicity
  • !limit use of passive voice!
  • use active voice, even prefer I over we!
  • minimise use of “zombi nouns” (don’t turn verbs/adjectives to nouns!)
  • “find words that can be cut”

– the paper can focus on one aspect of the presentation

– “open door policy” for (content) questions

~ demonstrate ability for novel research

– “solve research question with the tools accessible to you”

– “show something that has not been shown before / should be publishable in principle”

– new idea (or criticism) “in this field”

– Outline idea THEN reading with a purpose (answering concrete questions)

– “Only” confirm that nobody has published the exact same idea on the same topic

– pretty much determined by presentation & proposal but narrow down further (& choose supervisor?)

Quarto Features Incompatible with LaTeX (Below)